2015-04-26 20 views
3

我是JavaFX的新手,目前遇到一些麻煩與onAction事件與不同包內的類。FXML和控制器在不同的包 - 按鈕onAction問題

這裏是包樹:

enter image description here

下面是代碼不工作樣品:

onAction="#handleSubmitButtonAction" 

<?import java.net.*?> 
<?import javafx.geometry.*?> 
<?import javafx.scene.control.*?> 
<?import javafx.scene.layout.*?> 
<?import javafx.scene.text.*?> 

<GridPane fx:controller="GUIController.AccueilController" 
    xmlns:fx="http://javafx.com/fxml" alignment="center" hgap="10" vgap="10"> 

    ... 

    <HBox spacing="10" alignment="bottom_right" 
     GridPane.columnIndex="1" GridPane.rowIndex="4"> 
     <Button text="Se connecter" onAction="#handleSubmitButtonAction"/> 
    </HBox> 

    ... 

</GridPane> 

該錯誤是由發送說:「處理方法不可訪問。公開或用@FXML註釋」

這裏是AccueilController.java文件:

package GUIController; 

import java.awt.event.ActionEvent; 
import javafx.fxml.FXML; 
import javafx.scene.text.Text; 

public class AccueilController { 

    @FXML private Text actiontarget; 

    @FXML protected void handleSubmitButtonAction(ActionEvent event) { 
     actiontarget.setText("Sign in button pressed"); 
    } 

} 

正如你所看到的,@FXML標籤已被添加,所以我不知道問題出在哪裏。這可能有點愚蠢,但我真的無法弄清楚。

順便說一句,沒有onAction行,代碼工作完美。

謝謝你們!

+0

將protected void handleSubmitButtonAction更改爲公共方法 –

+0

這不會更改任何內容。 – Xema

回答

4

嘗試用import javafx.event.ActionEvent代替import java.awt.event.ActionEvent。 JavaFX可能會嘗試用另一種類型的參數調用您的方法,並且找不到合適的重載方法。

+0

你是絕對正確的!謝謝 ! – Xema

相關問題