JavaFX ToggleButton 切换按钮

时间:2020-01-09 10:36:42  来源:igfitidea点击:

JavaFX ToggleButton是可以选择或者不选择的按钮。就像一个按钮,当我们按下它时,它会停留在它之间,下次我们再次按下它时,它会再次出现。切换不切换。 JavaFX ToggleButton由类javafx.scene.control.ToggleButton表示。

创建一个ToggleButton

我们可以通过创建ToggleButton类的实例来创建JavaFX ToggleButton。这是创建JavaFXToggleButton实例的示例:

ToggleButton toggleButton1 = new ToggleButton("Left");

本示例创建一个带有文本" Left"的" ToggleButton"。

向场景图添加ToggleButton

要使" ToggleButton"可见,必须将其添加到JavaFX场景图中。这意味着将其添加到"场景",或者作为添加到"场景"对象的布局的子级。

这是一个将JavaFXToggleButton添加到场景图的示例:

package com.Hyman.javafx.controls;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ToggleButton;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class ToggleButtonExperiments extends Application  {

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("HBox Experiment 1");

        ToggleButton toggleButton1 = new ToggleButton("Left");

        HBox hbox = new HBox(toggleButton1);

        Scene scene = new Scene(hbox, 200, 100);
        primaryStage.setScene(scene);
        primaryStage.show();

    }

    public static void main(String[] args) {
        Application.launch(args);
    }
}

以下两个屏幕快照说明了运行上述示例代码所产生的应用程序。第一个屏幕截图显示了一个未按下的" ToggleButton",第二个屏幕截图显示了一个被按下(选择,激活等)的相同的" ToggleButton":

读取所选状态

" ToggleButton"类具有一个名为" isSelected"的方法,该方法可让我们确定是否已选择(按下)" ToggleButton"。如果选择了" ToggleButton",那么" isSelected()"方法将返回一个"布尔",其值为" true",否则为" false"。这是一个例子:

boolean isSelected = toggleButton1.isSelected();

切换组

我们可以将JavaFX的ToggleButton实例分组为ToggleGroup。一个"切换组"最多允许随时切换(按下)一个"切换按钮"。因此," ToggleGroup"中的" ToggleButton"实例的函数类似于单选按钮。

这是一个JavaFXToggleGroup示例:

ToggleButton toggleButton1 = new ToggleButton("Left");
ToggleButton toggleButton2 = new ToggleButton("Right");
ToggleButton toggleButton3 = new ToggleButton("Up");
ToggleButton toggleButton4 = new ToggleButton("Down");

ToggleGroup toggleGroup = new ToggleGroup();

toggleButton1.setToggleGroup(toggleGroup);
toggleButton2.setToggleGroup(toggleGroup);
toggleButton3.setToggleGroup(toggleGroup);
toggleButton4.setToggleGroup(toggleGroup);

这是一个完整的示例,将4个ToggleButton实例添加到ToggleGroup,并将它们也添加到场景图中:

package com.Hyman.javafx.controls;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ToggleButton;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class ToggleButtonExperiments extends Application  {

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("HBox Experiment 1");

        ToggleButton toggleButton1 = new ToggleButton("Left");
        ToggleButton toggleButton2 = new ToggleButton("Right");
        ToggleButton toggleButton3 = new ToggleButton("Up");
        ToggleButton toggleButton4 = new ToggleButton("Down");

        ToggleGroup toggleGroup = new ToggleGroup();

        toggleButton1.setToggleGroup(toggleGroup);
        toggleButton2.setToggleGroup(toggleGroup);
        toggleButton3.setToggleGroup(toggleGroup);
        toggleButton4.setToggleGroup(toggleGroup);

        HBox hbox = new HBox(toggleButton1, toggleButton2, toggleButton3, toggleButton4);

        Scene scene = new Scene(hbox, 200, 100);
        primaryStage.setScene(scene);
        primaryStage.show();

    }

    public static void main(String[] args) {
        Application.launch(args);
    }
}

生成的应用程序如下所示:

读取切换组的选定状态

我们可以使用" getSelectedToggle()"方法读取(按下)" ToggleGroup"中的哪个" ToggleButton",如下所示:

ToggleButton selectedToggleButton =
        (ToggleButton) toggleGroup.getSelectedToggle();

如果未选择" ToggleButton",则" getSelectedToggle()"方法将返回" null"。