【问题标题】:How can I check a radio button by default in JavaFX? [duplicate]如何在 JavaFX 中默认检查单选按钮? [复制]
【发布时间】:2019-10-30 01:16:04
【问题描述】:

我正在制作石头、剪刀、纸质申请书作为大学作业。我应该使用单选按钮,因为它是一个游戏,它应该允许一次选择一个按钮。

我尝试创建 ToggleGroups 并将其中一个按钮设置为默认选中,但它不起作用!当我运行应用程序时,它仍然允许我选择多个按钮:( 我错过了什么?

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("../view/QuilometrosPorLitroView.fxml"));
        primaryStage.setTitle("Pedra, Papel, Tesoura");
        primaryStage.setScene(new Scene(root, 428, 336));
        primaryStage.setResizable(false);
        primaryStage.show();
        Controller.selectButtonDefault();
    }


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

public class Controller {

    @FXML
    public static
    RadioButton tesoura = new RadioButton();
    @FXML
    public static
    RadioButton pedra = new RadioButton();
    @FXML
    public static
    RadioButton papel = new RadioButton();

    public static void selectButtonDefault() {
        ToggleGroup group = new ToggleGroup();

        tesoura.setToggleGroup(group);
        tesoura.setSelected(true);
        pedra.setToggleGroup(group);
        papel.setToggleGroup(group);

    }

【问题讨论】:

  • 首先你应该知道如何创建控制器类。如果您使用 Scenebuilder,您可以显示 Sample skelection。然后你会看到与@FXML 的不同以及你如何用“新”来创建东西
  • 您不能将节点注入static 字段。您可能尝试通过自己初始化字段来解决null 的问题,但那些Nodes 不是任何场景的一部分。

标签: java javafx radio-button javafx-8


【解决方案1】:

这个

@FXML public static RadioButton tesoura = new RadioButton(); 
@FXML public static RadioButton pedra = new RadioButton(); 
@FXML public static RadioButton papel = new RadioButton();

应该改成

@FXML private RadioButton tesoura;
@FXML private RadioButton pedra; 
@FXML private RadioButton papel;

【讨论】:

  • 我试过了,但我得到了一个空指针。 Caused by: java.lang.NullPointerException at controller.Controller.selectButtonDefault(Controller.java:23) at main.Main.start(Main.java:22)
  • 向我们展示 fxml 文件。我想你忘了设置 ID。
猜你喜欢
  • 2017-12-17
  • 2021-11-10
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 2015-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多