我想要掌握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{
}
答案 0 :(得分:1)
它应该是,
public class FXMLDocument_Controller implements Initializable{
然后,您可以实施initialize
此方法位于extends Application
的“主”类中,并且是您程序的入口点
@Override
public void start (Stage primaryStage) throws Exception {
}
在我的netbeans中 - >新项目我可以选择“javafx fxml应用程序”和“javafx应用程序”等等。也许你选错了。