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物件檢查組中選定的切換。如果沒有選擇任何開關按鈕,則輸出預設值。

如果選擇其中一個切換按鈕,getSelectedTogglegetUserData方法返回使用者定義的值。

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");