簡體   English   中英

如何在javafx中創建一個開關按鈕?

[英]How can i create a switch button in javafx?

我想創建一個像上面那樣的開關按鈕 在此輸入圖像描述 我是一個swt開發人員,我曾經在這里獲得這個小部件Switchbutton 我可以在javafx中使用類似的東西嗎?

第一個傾向是擴展JavaFX Label並添加一個Button作為圖形和一個SimpleBooleanProperty用於監聽。 在按鈕上設置一個ActionEvent處理程序,用於切換Label的文本,樣式和圖形內容對齊方式。 下面的代碼將幫助您入門,您可以使用樣式和邊界。

package switchbutton;

import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.control.Button;
import javafx.scene.control.ContentDisplay;
import javafx.scene.control.Label;

public class SwitchButton extends Label
{
    private SimpleBooleanProperty switchedOn = new SimpleBooleanProperty(true);

    public SwitchButton()
    {
        Button switchBtn = new Button();
        switchBtn.setPrefWidth(40);
        switchBtn.setOnAction(new EventHandler<ActionEvent>()
        {
            @Override
            public void handle(ActionEvent t)
            {
                switchedOn.set(!switchedOn.get());
            }
        });

        setGraphic(switchBtn);

        switchedOn.addListener(new ChangeListener<Boolean>()
        {
            @Override
            public void changed(ObservableValue<? extends Boolean> ov,
                Boolean t, Boolean t1)
            {
                if (t1)
                {
                    setText("ON");
                    setStyle("-fx-background-color: green;-fx-text-fill:white;");
                    setContentDisplay(ContentDisplay.RIGHT);
                }
                else
                {
                    setText("OFF");
                    setStyle("-fx-background-color: grey;-fx-text-fill:black;");
                    setContentDisplay(ContentDisplay.LEFT);
                }
            }
        });

        switchedOn.set(false);
    }

    public SimpleBooleanProperty switchOnProperty() { return switchedOn; }
}

難道這不能通過兩個綁定在一起的切換按鈕(bind())完成,其中每個按鈕都有自己的CSS樣式嗎? 事實上,CSS似乎是一個棘手的(但可行的)部分才能做到正確。

那么你只需讓你的應用程序聽兩個切換按鈕實際做你想要的?

控制FX項目提供了一個你想要的開關按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM