2016-12-25 137 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