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

时间:2016-02-10 02:48:31

标签: javafx controller

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

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();
   }
}

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

1 个答案:

答案 0 :(得分:9)

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

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

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