【问题标题】:Run method from controller class on startup Javafx在启动 Javafx 时从控制器类运行方法
【发布时间】:2016-02-10 02:48:31
【问题描述】:

我有一个 javafx 应用程序,我有一个 main 用于设置舞台并启动应用程序。我还有一个控制器类:

public class Controller
{    
    @FXML Button button;
    public void test(){
        button.setText("Button");
    }
}

我将如何在启动时运行测试方法。我知道我可以在主类中创建一个实例...

public class Main extends Application{
   public void start(Stage primaryStage) throws Exception {
      ...

   public static void main (String[] args){
        launch (Main.class);
        Controller cont = Controller();
        cont.test();
   }
}

这会奏效。但是,它对我来说并不理想。我想知道是否可以直接从控制器类运行该方法,如果没有,是否有更好的处理方法?谢谢

【问题讨论】:

    标签: javafx controller


    【解决方案1】:

    加载 FXML 时会自动调用 initialize() 方法:

    public class Controller
    {    
        @FXML Button button;
        public void initialize(){
            button.setText("Button");
        }
    }
    

    请注意,Main 类中的代码根本不起作用。首先,launch() 在您退出应用程序之前不会退出,其次,您在控制器的新实例上调用它,而不是连接到您从 FXML 文件加载的 UI 的实例。

    【讨论】:

    • 非常感谢詹姆斯。这正是我想要的!该代码确实有效,但确实给了我一些奇怪的错误,所以我更喜欢你的解决方案:)
    猜你喜欢
    • 1970-01-01
    • 2016-10-11
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    相关资源
    最近更新 更多