JavaFX切換按鈕
切換按鈕具有兩種狀態:選擇或未選擇。
我們通常將兩個或多個切換按鈕組合成一個組,並允許用戶只選擇一個按鈕或不選擇。
創建切換按鈕
我們可以使用ToggleButton
類的三個構造函數創建一個切換按鈕。要創建沒有任何字幕或圖標的切換按鈕。
ToggleButton tb = new ToggleButton();
要創建帶有文字說明的切換按鈕
ToggleButton tb = new ToggleButton("Press me");
要創建帶有文字說明和圖標的切換按鈕。
Image image = new Image(getClass().getResourceAsStream("icon.png"));
ToggleButton tb = new ToggleButton ("Press me", new ImageView(image));
setText()
方法可以將文本設置爲ToggleButton
,以及setGraphic()
方法可以將圖像安裝到ToggleButton
。
切換按鈕組
切換組不強制選擇至少一個按鈕。單擊所選的切換按鈕可取消選擇切換按鈕。
ToggleGroup group = new ToggleGroup();
ToggleButton tb1 = new ToggleButton("High");
tb1.setToggleGroup(group);
tb1.setSelected(true);
ToggleButton tb2 = new ToggleButton("Medium");
tb2.setToggleGroup(group);
ToggleButton tb3 = new ToggleButton("Low");
tb3.setToggleGroup(group);
ToggleButton行爲
setUserData()
方法將用戶值與切換按鈕相關聯。ChangeListener
對象檢查組中選定的切換。如果沒有選擇任何開關按鈕,則輸出默認值。
如果選擇其中一個切換按鈕,getSelectedToggle
和getUserData
方法返回用戶定義的值。
tb1.setUserData("High");
tb2.setUserData("Medium");
tb3.setUserData("Low");
ToggleGroup group = new ToggleGroup();
group.selectedToggleProperty().addListener
(ObservableValue<? extends Toggle> ov, Toggle toggle, Toggle new_toggle) -> {
if (new_toggle == null)
System.out.println("default value");
else
System.out.println(group.getSelectedToggle().getUserData());
});
樣式切換按鈕
可以將CSS樣式應用於切換按鈕。
首先,在myStyle.css
文件中聲明切換按鈕的樣式。
.toggle-button1{
-fx-font: 30 arial;
-fx-base: green;
}
.toggle-button2{
-fx-font: 25 arial;
-fx-base: blue;
}
.toggle-button3{
-fx-font: 30 arial;
-fx-base: red;
}
其次,在應用程序中安裝樣式。
scene.getStylesheets().add("myStyle.css");
tb1.getStyleClass().add("toggle-button1");
tb2.getStyleClass().add("toggle-button2");
tb3.getStyleClass().add("toggle-button3");