从javaFx窗口调用JavaSwingJFrame

从javaFx窗口调用JavaSwingJFrame,swing,javafx,Swing,Javafx,我有一个javaFx按钮,我需要在单击时调用JFrame(swing),我尝试了这段代码,但该方法没有出现在javaFx场景生成器上 @FXML private Button button; public void afficheGraph(String sys) throws Exception{ graph frm = new graph(id);//the swing JFrame frm.setVisible(true); } 我犯了这个错误 原因:javafx.f

我有一个javaFx按钮,我需要在单击时调用JFrame(swing),我尝试了这段代码,但该方法没有出现在javaFx场景生成器上

@FXML
private Button button;

public void afficheGraph(String sys) throws Exception{

    graph frm = new graph(id);//the swing JFrame
    frm.setVisible(true);
}
我犯了这个错误

原因:javafx.fxml.LoadException:错误解析onAction='#afficheGraph',事件处理程序不在命名空间中,或者脚本中存在错误


如果我没有弄错的话,错误来自方法本身及其参数,我认为您需要添加注释
@FXML
,以便对该方法进行计数,我看不出添加
字符串sys
参数或throwable的原因。这里有一个替代:

@FXML
public void afficheGraph(ActionEvent ae){ //ActionEvent instead of String
graph frm = new graph(id);//the swing JFrame
frm.setVisible(true);
}

我可能会错,但我看不出有兴趣,祝你好运

我看不到任何尺码。你只是没有看到窗口出现吗?我编辑了带有错误的帖子。你能添加fxml代码吗?是否已将控制器添加到file.fxml?有关添加按钮处理程序方法的示例,请参阅的“控制器事件处理程序”部分。按钮处理程序方法(如果存在)的类型参数需要是ActionEvent,而不是String(正如Bo在回答中指出的那样)。您不需要对
public
方法进行
@FXML
注释(尽管将该方法设置为非public并对其进行注释要好得多)。但是,您确实需要一个兼容的参数列表:它必须没有参数,或者只有一个可以指定适当类型的事件的参数(
ActionEvent
,在这种情况下,参数必须是
ActionEvent
或超类)。