JavaFX - 工具欄



工具欄 (ToolBar) 是一種圖形使用者介面控制元件,具有水平或垂直排列的按鈕、選單或其他控制元件的條帶。它通常用於快速訪問常用命令或功能。如下圖所示,我們可以在任何應用程式或網頁的頂部找到工具欄:

Tool Bar

JavaFX 中的工具欄

在 JavaFX 中,工具欄由ToolBar類表示。此類是名為javafx.scene.control包的一部分。透過例項化此類,我們可以在 JavaFX 中建立一個 ToolBar 節點。它具有以下建構函式:

  • ToolBar() - 這是用於建立沒有任何預定義節點的工具欄的預設建構函式。

  • ToolBar(Node nodes) - 這是 ToolBar 類的引數化建構函式,它使用指定的節點建立一個新的工具欄。

在 JavaFX 中建立工具欄的步驟

請按照以下步驟在 JavaFX 中建立工具欄。

步驟 1:建立要在 ToolBar 中顯示的節點

首先,我們需要建立一個要在 ToolBar 中顯示的節點列表,其中每個節點代表一個不同的命令或功能。在這裡,我們將使用下面的程式碼塊建立按鈕、分隔符和文字欄位:

// Creating buttons and a text field
Button btnNew = new Button("New");
Button btnOpen = new Button("Open");
Button btnSave = new Button("Save");
Button btnExit = new Button("Exit");
TextField txtSearch = new TextField();
txtSearch.setPromptText("Search");
// creating separators
Separator sepOne = new Separator();
Separator sepTwo = new Separator();

步驟 2:例項化 ToolBar 類

如前所述,工具欄是使用名為ToolBar的類建立的。因此,請例項化此類,如下面的程式碼塊所示:

// creating a toolbar
ToolBar toolsB = new ToolBar();

步驟 3:將節點新增到 ToolBar 物件

要將所有節點新增到 ToolBar,我們使用getItems()addAll()方法。下面的程式碼演示了這一點:

// adding the nodes
toolsB.getItems().addAll(btnNew, btnOpen, btnSave, sepOne, txtSearch, sepTwo, btnExit);

步驟 4:啟動應用程式

建立工具欄並新增所有節點後,請按照以下步驟正確啟動應用程式:

  • 首先,透過將 ToolBar 物件作為引數值傳遞給其建構函式來例項化名為BorderPane的類。但是,我們可以使用任何佈局面板,例如 GridPane 或 StackPane。

  • 然後,透過將 BorderPane 物件作為引數值傳遞給其建構函式來例項化名為Scene的類。我們還可以將應用程式螢幕的尺寸作為可選引數傳遞給此建構函式。

  • 然後,使用Stage類的setTitle()方法設定舞臺的標題。

  • 現在,使用名為Stage的類的setScene()方法將 Scene 物件新增到舞臺。

  • 使用名為show()的方法顯示場景的內容。

  • 最後,在launch()方法的幫助下啟動應用程式。

示例

以下是將使用 JavaFX 建立 ToolBar 的程式。將此程式碼儲存在名為ToolbarExample.java的檔案中。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Separator;
import javafx.scene.control.TextField;
import javafx.scene.control.ToolBar;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class ToolbarExample extends Application {
   @Override
   public void start(Stage stage) throws Exception {
      // Creating buttons and a text field
      Button btnNew = new Button("New");
      Button btnOpen = new Button("Open");
      Button btnSave = new Button("Save");
      Button btnExit = new Button("Exit");
      TextField txtSearch = new TextField();
      txtSearch.setPromptText("Search");
      // creating separators
      Separator sepOne = new Separator();
      Separator sepTwo = new Separator();
      // creating a toolbar
      ToolBar toolsB = new ToolBar();
      // adding the nodes
      toolsB.getItems().addAll(btnNew, btnOpen, btnSave, sepOne, txtSearch, sepTwo, btnExit);
      // Creating a BorderPane as root 
      BorderPane root = new BorderPane();
      // adding the ToolBar at the top 
      root.setTop(toolsB);
      // Create a Scene and set it to the Stage
      Scene scene = new Scene(root, 400, 300);
      stage.setTitle("ToolBar in JavaFX");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String[] args) {
      launch(args);
   }
}

使用以下命令從命令提示符編譯並執行儲存的 Java 檔案。

javac --module-path %PATH_TO_FX% --add-modules javafx.controls ToolbarExample.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls ToolbarExample

輸出

執行上述程式後,將生成一個 JavaFX 視窗,顯示一個帶有指定按鈕和文字欄位的 ToolBar,如下所示。

ToolBar Output

設定 ToolBar 的方向

要更改 ToolBar 的方向,我們可以使用setOrientation()方法並將Orientation.HORIZONTALOrientation.VERTICAL作為引數傳遞。

示例

在以下 JavaFX 程式中,我們將建立一個垂直 ToolBar。將此程式碼儲存在名為VerticalToolbar.java的檔案中。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Separator;
import javafx.scene.control.TextField;
import javafx.scene.control.ToolBar;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
import javafx.geometry.Orientation;
public class VerticalToolbar extends Application {
   @Override
   public void start(Stage stage) throws Exception {
      // Creating buttons
      Button btnNew = new Button("New");
      Button btnOpen = new Button("Open");
      Button btnSave = new Button("Save");
      Button btnExit = new Button("Exit");
      // creating separators
      Separator sepOne = new Separator();
      Separator sepTwo = new Separator();
      Separator sepThree = new Separator();
      // creating a toolbar
      ToolBar toolsB = new ToolBar();
      // adding the nodes
      toolsB.getItems().addAll(btnNew, sepOne, btnOpen, sepTwo, btnSave, sepThree, btnExit);
      toolsB.setOrientation(Orientation.VERTICAL); 
      // Creating a BorderPane as root 
      BorderPane root = new BorderPane();
      // adding the ToolBar at the top 
      root.setTop(toolsB);
      // Create a Scene and set it to the Stage
      Scene scene = new Scene(root, 400, 300);
      stage.setTitle("ToolBar in JavaFX");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String[] args) {
      launch(args);
   }
}

使用以下命令從命令提示符編譯並執行儲存的 Java 檔案。

javac --module-path %PATH_TO_FX% --add-modules javafx.controls VerticalToolbar.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls VerticalToolbar

輸出

當我們執行上述程式碼時,它將生成以下輸出。

Toolbar Output2
廣告