如何单击位于方法之外的其他类中的按钮

我在触发位于另一个类中的按钮时遇到问题。


我试过在参数中传递按钮,但我得到空异常错误,我创建的 getter 也是如此。


public class ButtonHolder{

    @FXML

    RadioButton radioButton;


    public void radioButtonOnClick(){

        //does something

    }

    public RadioButton getRadioButton(){

        return this.radioButton;

    }

}



public class Example{

    public void fireButton(){

        ButtonHolder buttonHolder = new ButtonHolder();

        buttonHolder.getRadioButton.fire();

    }

}


白猪掌柜的
浏览 144回答 1
1回答

子衿沉夜

问题XML(我假设您有 XML 布局)未连接到您的代码。解决方案就架构而言,更好的方法是将“业务”逻辑与 UI 逻辑分开。假设你在里面有一些代码radioButtonOnClick。将代码移动到一个新类到它自己的 merhod将所述类添加为两个类的依赖项;从你的两个类运行新方法。如果我需要使用按钮怎么办您可以创建它://A&nbsp;button&nbsp;with&nbsp;an&nbsp;empty&nbsp;text&nbsp;caption. Button&nbsp;button1&nbsp;=&nbsp;new&nbsp;Button();然后打电话fire ()。如果控件元素没有fire方法怎么办RadioMenuItem这是with的例子EventHandler:MenuBar menuBar = new MenuBar();Menu menu = new Menu("Menu 1");RadioMenuItem choice1Item = new RadioMenuItem("Choice 1");choice1Item.setOnAction(new EventHandler<ActionEvent>() {&nbsp; &nbsp; @Override public void handle(ActionEvent e) {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("radio toggled");&nbsp; &nbsp; }});RadioMenuItem choice2Item = new RadioMenuItem("Choice 2");RadioMenuItem choice3Item = new RadioMenuItem("Choice 3");ToggleGroup toggleGroup = new ToggleGroup();toggleGroup.getToggles().add(choice1Item);toggleGroup.getToggles().add(choice2Item);toggleGroup.getToggles().add(choice3Item);menu.getItems().add(choice1Item);menu.getItems().add(choice2Item);menu.getItems().add(choice3Item);menuBar.getMenus().add(menu);VBox vBox = new VBox(menuBar);Scene scene = new Scene(vBox, 300, 275);primaryStage.setScene(scene);primaryStage.show();如果我想使用来自 XML 的按钮怎么办看看 FXML 教程: https ://riptutorial.com/javafx/example/5125/example-fxml
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java