JavaFX - 按鈕欄



ButtonBar 是一種容器,用於以水平佈局排列按鈕。這些按鈕的排列或位置取決於我們正在使用的作業系統型別。通常,放置在 ButtonBar 內的所有按鈕都具有統一的大小。但是,它也允許我們自定義按鈕的大小以及位置。一個典型的按鈕欄如下所示。它包含兩個按鈕,分別為“是”和“否”。

Button Bar

JavaFX 中的 ButtonBar

在 JavaFX 中,名為ButtonBar的類表示一個按鈕欄。此類屬於包javafx.scene.control。我們可以透過例項化 ButtonBar 類在 JavaFX 中建立按鈕欄節點。

此類有兩個可用的建構函式,它們如下所示:

  • ButtonBar() - 用於建立具有預設屬性的按鈕欄,這些屬性將特定於作業系統。

  • ButtonBar(String buttonOrder) - 將根據指定的按鈕順序建立按鈕欄。

在 JavaFX 中建立按鈕欄的步驟

要在 JavaFX 中建立按鈕欄,請按照以下步驟操作。

步驟 1:建立兩個或多個按鈕

在 JavaFX 中,按鈕是透過例項化名為Button的類建立的,該類屬於包javafx.scene.control。如下所示例項化此類:

//Creating required buttons
Button buttonOne = new Button("Back");
Button buttonTwo = new Button("Accept");
Button buttonThree = new Button("Cancel");

類似地,為專案建立所需的按鈕數量。

步驟 2:例項化 ButtonBar 類

例項化包javafx.scene.controlButtonBar類,不要向其建構函式傳遞任何引數值,並使用getButtons()方法新增所有按鈕。

//Creating a ButtonBar
ButtonBar newButtonbar = new ButtonBar();
// Adding buttons to the ButtonBar
newButtonbar.getButtons().addAll(buttonOne, buttonTwo, buttonThree); 

步驟 3:啟動應用程式

建立按鈕欄後,請按照以下步驟正確啟動應用程式:

  • 首先,例項化名為HBox的類,並使用getChildren()方法新增按鈕欄。

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

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

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

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

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

示例

以下是將在 JavaFX 中建立按鈕欄的程式。將此程式碼儲存在名為JavafxButtonBar.java的檔案中。

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.ButtonBar;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
public class JavafxButtonBar extends Application {
   @Override
   public void start(Stage stage) {
      //Creating required buttons
      Button buttonOne = new Button("Back");
      Button buttonTwo = new Button("Accept");
      Button buttonThree = new Button("Cancel");
      //Creating a ButtonBar
      ButtonBar newButtonbar = new ButtonBar();
      // Adding buttons to the ButtonBar
      newButtonbar.getButtons().addAll(buttonOne, buttonTwo, buttonThree);
      newButtonbar.setPadding(new Insets(10));
      HBox box = new HBox();
      box.getChildren().addAll(newButtonbar);
      //Setting the stage
      Scene scene = new Scene(box, 500, 250);
      stage.setTitle("ButtonBar 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 JavafxButtonBar.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxButtonBar

輸出

執行後,上述程式將生成一個 JavaFX 視窗,其中顯示如下所示的 ButtonBar。

ButtonBar Output

建立具有自定義按鈕順序的 ButtonBar

在大多數情況下,按鈕的順序由作業系統確定。但是,如果需要自定義佈局,則可以使用ButtonBar類的setButtonOrder()方法。它將按鈕順序屬性作為引數並相應地排列按鈕。不同作業系統的按鈕順序屬性為 BUTTON_ORDER_WINDOWS、BUTTON_ORDER_MAC_OS 和 BUTTON_ORDER_LINUX。

示例

在下面的 JavaFX 程式中,我們將透過設定 MAC 的按鈕順序屬性來建立 ButtonBar。將此程式碼儲存在名為JavafxButtonBar.java的檔案中。

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.ButtonBar;
import javafx.scene.control.ButtonBar.ButtonData;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
public class JavafxButtonBar extends Application {
   @Override
   public void start(Stage stage) {
      //Creating required buttons
      Button buttonTwo = new Button("Yes");
      Button buttonOne = new Button("No");
      //Creating a ButtonBar
      ButtonBar newButtonbar = new ButtonBar();
      // Setting the order of Buttons
      newButtonbar.setButtonOrder("BUTTON_ORDER_MAC_OS");
      // Adding buttons to the ButtonBar
      newButtonbar.getButtons().addAll(buttonOne, buttonTwo);
      newButtonbar.setPadding(new Insets(10));
      HBox box = new HBox();
      box.getChildren().addAll(newButtonbar);
      //Setting the stage
      Scene scene = new Scene(box, 500, 250);
      stage.setTitle("ButtonBar 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 JavafxButtonBar.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxButtonBar

輸出

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

ButtonBar Output2
廣告

© . All rights reserved.