ToggleButton是具有選擇函數的特殊控件。本質上,ToggleButton的呈現方式與Button類似,但是這兩種是不同類型的控件。按鈕是“command”按鈕,單擊該按鈕可調用函數。但是ToggleButton是帶有布爾值的控件,指示是否已選擇它。它繼承了ButtonBase類。
ToggleButton也可以成組放置。默認情況下,ToggleButton不在組中。分組時,一次隻能選擇該組中的一個ToggleButton。要將兩個ToggleButtons放在同一組中,隻需為ToggleGroup分配兩個相同的值即可。與RadioButtons不同,ToggleGroup中的ToggleButtons不會嘗試在組中強製至少選擇一個ToggleButton。意味著,如果選擇了ToggleButton,則單擊它會使其變為未選中狀態。使用RadioButton,單擊組中的所選按鈕將無效。
該類的構造函數:
- ToggleButton():創建一個帶有空字符串標簽的切換按鈕。
- ToggleButton(String txt):創建一個以指定文本作為標簽的切換按鈕。
- ToggleButton(String txt, Node graphic):創建一個帶有指定文本和圖標作為標簽的切換按鈕。
常用方法:
方法 | 描述 |
---|---|
setToggleGroup(ToggleGroup val) | 設置屬性toggleGroup的值。 |
setSelected(boolean val) | 設置所選屬性的值。 |
isSelected() | 獲取所選屬性的值。 |
fire() | 當用戶手勢指示此ButtonBase的事件應發生時調用。 |
以下示例程序旨在說明ToggleButton類的用法:
- 演示ToggleButton類的簡單Java程序:在此程序中,我們嘗試選擇一個人的性別。我們首先創建HBox,然後為其設置Layout。創建一個ToggleGroup和新的切換按鈕,分別命名為“ Male”和“ Female”。使用setToggleGroup()方法設置切換組(一次隻能選擇一個按鈕)。默認情況下,“男性”按鈕處於選中狀態。使用setScene()方法創建場景並將場景設置為舞台。並啟動應用程序。
// Java program to demonstrate ToggleButton Class import javafx.application.Application; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.control.ToggleButton; import javafx.scene.control.ToggleGroup; import javafx.scene.layout.HBox; import javafx.stage.Stage; public class ToggleButtonExample extends Application { public void start(Stage stage) { // Hbox layout HBox root = new HBox(); root.setPadding(new Insets(10)); root.setSpacing(5); // Gender root.getChildren().add(new Label("Your gender:")); // Creating a ToggleGroup ToggleGroup group = new ToggleGroup(); // Creating new Toggle buttons. ToggleButton maleButton = new ToggleButton("Male"); ToggleButton femaleButton = new ToggleButton("Female"); // Set toggle group // In a group, maximum only // one button is selected maleButton.setToggleGroup(group); femaleButton.setToggleGroup(group); maleButton.setUserData("I am a Male"); femaleButton.setUserData("I am a Female"); // male button is selected at first by default maleButton.setSelected(true); root.getChildren().addAll(maleButton, femaleButton); // create the scene Scene scene = new Scene(root, 450, 300); stage.setTitle("Toggle Button"); stage.setScene(scene); stage.show(); } // Main Method public static void main(String[] args) { launch(args); } }
輸出:
- Java程序使用ChangeListener演示ToggleButton類:在此程序中,我們首先創建一個標簽。然後,我們將使用ToggleButton()創建切換按鈕,並使用ToggleGroup()方法創建切換組。將所有的切換按鈕添加到ToggleGroup。現在為ToggleGroup創建一個ChangeListener。每當ObservableValue的值更改時,將通知ChangeListener。 ObservableValue是一個包裝值並允許觀察該值以進行更改的實體。現在,創建用於選擇主題的標簽。使用HBox()創建HBox現在,將ToggleButtons添加到HBox。使用setSpacing()方法設置按鈕之間的間距。創建VBox,將標簽和HBox添加到VBox。設置VBox的大小並設置VBox的填充(例如border-style,border-width,border-radius,border-insets,border-color)。創建場景並將其添加到舞台。設置舞台標題並顯示。
// Java program to demonstrate ToggleButton // Class using ChangeListener import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.control.Toggle; import javafx.scene.control.ToggleButton; import javafx.scene.control.ToggleGroup; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class ToggleButtonDemo extends Application { // Create the Message Label Label selectionMsg = new Label("Your selection:None"); public void start(Stage stage) { // Create four ToggleButtons ToggleButton csBtn = new ToggleButton("Computer Science"); ToggleButton pBtn = new ToggleButton("Physics"); ToggleButton chemBtn = new ToggleButton("Chemistry"); ToggleButton mBtn = new ToggleButton("Maths"); // Create a ToggleGroup final ToggleGroup group = new ToggleGroup(); // Add all ToggleButtons to a ToggleGroup group.getToggles().addAll(csBtn, pBtn, chemBtn, mBtn); // Create a ChangeListener for the ToggleGroup group.selectedToggleProperty().addListener( new ChangeListener<Toggle>() { public void changed(ObservableValue<? extends Toggle> ov, final Toggle toggle, final Toggle new_toggle) { String toggleBtn = ((ToggleButton)new_toggle).getText(); selectionMsg.setText("Your selection:" + toggleBtn); } }); // Create the Label for the Selection Label selectLbl = new Label("Select the subject:"); // Create a HBox HBox buttonBox = new HBox(); // Add ToggleButtons to an HBox buttonBox.getChildren().addAll(csBtn, pBtn, chemBtn, mBtn); // Set the spacing between children to 10px buttonBox.setSpacing(10); // Create the VBox VBox root = new VBox(); // Add the Labels and HBox to the VBox root.getChildren().addAll(selectionMsg, selectLbl, buttonBox); // Set the spacing between children to 10px root.setSpacing(10); // Set the Size of the VBox root.setMinSize(350, 250); // Set the padding of the VBox // Set the border-style of the VBox // Set the border-width of the VBox // Set the border-insets of the VBox // Set the border-radius of the VBox // Set the border-color of the VBox root.setStyle("-fx-padding:10;" + "-fx-border-style:solid inside;" + "-fx-border-width:2;" + "-fx-border-insets:5;" + "-fx-border-radius:5;" + "-fx-border-color:blue;"); // Create the Scene Scene scene = new Scene(root); // Add the scene to the Stage stage.setScene(scene); // Set the title of the Stage stage.setTitle("A ToggleButton Example"); // Display the Stage stage.show(); } // Main Method public static void main(String[] args) { // launch the application Application.launch(args); } }
輸出:
注意:以上程序可能無法在在線IDE中運行。請使用離線編譯器。
參考: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/ToggleButton.html
相關用法
- Java Static用法及代碼示例
- Java Inner用法及代碼示例
- Java BigInteger用法及代碼示例
- Java Scanner用法及代碼示例
- Java Scanner和BufferedReader的區別用法及代碼示例
- Java Arrays用法及代碼示例
注:本文由純淨天空篩選整理自chitranayal大神的英文原創作品 JavaFX | ToggleButton Class。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。