2012-09-05 42 views
0

如下所述,我有一个EventHandler链接到TextField(text变量),我想从该处理程序中调用同一类中存在的函数(MyFunction ),所以我得到的错误这个帖子(标题):javafx.fxml.LoadException:未找到控制器方法“MyFunction”

代码:

class Example implements Initializable{ 
    //... 
    public void initialize(URL fxmlFileLocation, ResourceBundle resources) { 
    //... 
    text.setOnKeyPressed(new EventHandler<KeyEvent>(){ 
     @Override 
     public void handle(KeyEvent event) { 
      if(event.getCode() == KeyCode.ENTER){ 

       MyFunction(text.getText()); 
      } 
     } 
    }); 
    //... 
    }//function initialize ends here 

    public void MyFuction(String text){ 
     //... 
    } 
//... 
}//Class ends here 

我使用JavaFX 2.2,我希望我的要求是相当清楚的。

+0

你的Example类是否实现javafx.fxml.Initializable?是你的“主类”示例类吗? –

+0

是的,对不起,我忘记了工具的一部分! – Adil

回答

3

该问题似乎在您的FXML文件中。你可能是这样做的:<Button text="Button" onAction="#MyFuction"/>onAction处理程序应该接受一个类型的单个参数,可以扩展javafx.event.Event

+0

我发现了这个问题,它与您所说的非常相似。谢谢 – Adil

1

试着把@FXML放在你的MyFuction()方法的前面。

+0

添加@FXML后没有新东西,谢谢! – Adil