在启动Javafx上从控制器类运行方法

Cor*_*ius 2 controller javafx

我有一个javafx应用程序,我有一个主要的设置我的舞台并启动应用程序.我也有一个控制器类:

public class Controller
{    
    @FXML Button button;
    public void test(){
        button.setText("Button");
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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();
   }
}
Run Code Online (Sandbox Code Playgroud)

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

Jam*_*s_D 9

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

public class Controller
{    
    @FXML Button button;
    public void initialize(){
        button.setText("Button");
    }
}
Run Code Online (Sandbox Code Playgroud)

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