2016-12-25 98 views
0

我想要获得JavaFx编程的窍门,并在Javafx控制器文件中遇到了一个奇怪的构造。典型的FX文件时通常产生含有类:JavaFx Netbeans生成的控制器没有类public void初始化

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

奇怪的是,我的最后一个项目,已经有点先进的,具有以下类,而不是:

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

我使用Ubuntu的NetBeans和因为我仍然习惯了javafx和NetBeans(在使用python几年后),我认为我一定在不知不觉中弄错了一些东西。

我的努力来简单地替换类“公共无效开始”,“公共无效初始化”的回报,而不作进一步的解释:

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

在NetBeans中,我们可以访问一个菜单的快捷键Alt + INS,从哪里可以调整覆盖设置,但是我不敢完全理解错误的原因以及弄乱设置的含义。但是我需要返回“初始化类”,因为我想在程序启动时执行一些函数,从“开始”类看来是不可能的。

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

在此先感谢您的任何建议。

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

在开始使用图形之前,您应该对Java 101有深入的了解。您的问题实际上是对抽象类的根本性误解。 – Mordechai

回答

1

它应该是, public class FXMLDocument_Controller implements Initializable{ 然后你就可以实现initialize

这种方法去在 “主” 类extends Application,是入口点,你的程序

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

在我的netbeans - >新项目中,我有'javafx fxml应用程序'的选择,只是“javafx应用程序” thers。也许你选错了一个。

+0

非常感谢,Brian ......完美无缺......是的,我可能在开始的时候做出了错误的选择。 – rainer