为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

白猪掌柜的 2023-01-05 17:22:44

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


我试过在参数中传递按钮,但我得到空异常错误,我创建的 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();

    }

}


查看完整描述

1 回答

?
子衿沉夜

TA贡献1586条经验 获得超3个赞

问题

XML(我假设您有 XML 布局)未连接到您的代码。

解决方案

就架构而言,更好的方法是将“业务”逻辑与 UI 逻辑分开。假设你在里面有一些代码radioButtonOnClick

  • 将代码移动到一个新类到它自己的 merhod

  • 将所述类添加为两个类的依赖项;

  • 从你的两个类运行新方法。

如果我需要使用按钮怎么办

您可以创建它:

//A button with an empty text caption.
Button button1 = new 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>() {

    @Override public void handle(ActionEvent e) {

        System.out.println("radio toggled");

    }

});

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


查看完整回答
反对 回复 2023-01-05

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信