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
广告