JavaFx Netbeans生成的控制器没有类public void initialize

时间:2016-12-25 03:26:39

标签: java netbeans javafx

我想要掌握JavaFx编程,并在Javafx控制器文件中遇到一个奇怪的结构。生成的典型fx文件通常包含一个类:

@Override 
public void initialize(URL url, ResourceBundle rb)

奇怪的是,我的上一个项目已经有点高级,而是有以下课程:

@Override
public void start (Stage primaryStage) throws Exception {

我在ubuntu上使用NetBeans,因为我还习惯使用javafx和NetBeans(使用python几年后),我认为我必须在没有注意的情况下搞砸了一些东西。

我努力简单地将“public void start”替换为“public void initialize”返回,没有进一步的解释:

error: method does not override or implement a method from a supertype

在NetBeans中,我们可以使用快捷键Alt + Ins访问菜单,从中可以调整覆盖设置,但我不敢在不完全理解事故原因和混乱的影响的情况下使用它。设置。但是我需要“初始化类”,因为我想在程序启动时执行一些函数,“start”类似乎是不可能的。

恢复“初始化类”或其属性的最佳方法是什么?

提前感谢任何建议。

public class FXMLDocument_Controller extends Application {
@FXML
private Button dialog;
//other @FXMLs ..

/**
 *
 * @param actionEvent
 * @throws Exception
 */


}
//this is the class in the controller
@Override
public void start (Stage primaryStage) throws Exception {

 }

//this is the class I would like to have (back)
@Override
public void initialize(URL url, ResourceBundle rb) {
    System.out.println("hello world");
    // TODO
}



public void openMessageBox(ActionEvent actionEvent) {
         funtion
}

public void contextMenu (ContextMenuEvent contextMenuEvent) {
          function
}

public void openDialog(ActionEvent event) throws IOException{


}

1 个答案:

答案 0 :(得分:1)

它应该是, public class FXMLDocument_Controller implements Initializable{ 然后,您可以实施initialize

此方法位于extends Application的“主”类中,并且是您程序的入口点

@Override public void start (Stage primaryStage) throws Exception { }

在我的netbeans中 - >新项目我可以选择“javafx fxml应用程序”和“javafx应用程序”等等。也许你选错了。