为什么我的javafx项目中会出现xml错误?

为什么我的javafx项目中会出现xml错误?,xml,javafx,Xml,Javafx,我的JavaFX项目中有一个onAction错误。我使用XML来设计和处理动作。奇怪的是,这是项目中3个控制器中的一个,另外2个似乎工作正常。让我觉得它与xml有关 我已经看了以前类似于这个问题的问题,似乎是java.event.ActionEvent解决了这个问题,但是正如您所看到的,我已经包含了这个包 在EclipseIDE中,一个错误符号出现在行中 按钮fx:id=“cameraPortClear” 带下划线的错误为onAction=“resetCameraPortFields” 控制器代

我的JavaFX项目中有一个onAction错误。我使用XML来设计和处理动作。奇怪的是,这是项目中3个控制器中的一个,另外2个似乎工作正常。让我觉得它与xml有关

我已经看了以前类似于这个问题的问题,似乎是java.event.ActionEvent解决了这个问题,但是正如您所看到的,我已经包含了这个包

在EclipseIDE中,一个错误符号出现在行中 按钮fx:id=“cameraPortClear”

带下划线的错误为onAction=“resetCameraPortFields”

控制器代码

package application;

import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.event.ActionEvent;

public class LaunchPadSystemsController {

private String cameraPort1 = null;
private String cameraPort2 = null;

@FXML
private TextField cameraPort1Field;

@FXML
private TextField cameraPort2Field;

@FXML
private Button cameraPortEnter;

@FXML 
private Button cameraPortClear;

private boolean cameraPortStatus() {
    if(cameraPort1.isEmpty() | cameraPort2.isEmpty())
        return false;

    else if(!(cameraPort1.isEmpty()) & !(cameraPort2.isEmpty()))
        return true;

    else 
        return false;
}

private void setCameraPortFields(ActionEvent e) {
    System.out.println("yeeetd");

    this.cameraPort1 = cameraPort1Field.getText();
    this.cameraPort2 = cameraPort2Field.getText();

    System.out.println(cameraPort1);
    System.out.println(cameraPort2);

}


private void resetCameraPortFields(){

    cameraPort1Field.setText("");
    cameraPort2Field.setText("");
}

}
XML代码(按钮标记是最后几行)


首先,您的
onAction
属性指定不正确。要引用控制器中的方法,需要在其前面加上
#


此外,您的
resetCameraPortFields()
方法是
private
。您需要对其进行注释
@FXML

@FXML
private void resetCameraPortFields(){

    cameraPort1Field.setText("");
    cameraPort2Field.setText("");
}

或者将其可访问性更改为
public

错误消息是什么?如果没有这些关键的细节,我们将无法帮助您。编辑后,我们将包含消息您知道我知道这一点,我不知道为什么我没有实现这一点。将#添加到xml中的注释有效。所有其他控制器都有私有方法,工作正常,但我会记住这一点。谢谢
javafx.fxml.LoadException: Error resolving onAction='resetCameraPortFields', either the event handler is not in the Namespace or there is an error in the script.
/C:/Users/Blake%20Patterson/eclipse- 
workspace/TelemetryGui/bin/LaunchPadXML.fxml:166

at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2597)
at javafx.fxml.FXMLLoader.access$100(FXMLLoader.java:103)
at javafx.fxml.FXMLLoader$Element.processEventHandlerAttributes(FXMLLoader.java:610)
at javafx.fxml.FXMLLoader$ValueElement.processEndElement(FXMLLoader.java:770)
at javafx.fxml.FXMLLoader.processEndElement(FXMLLoader.java:2823)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2532)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
@FXML
private void resetCameraPortFields(){

    cameraPort1Field.setText("");
    cameraPort2Field.setText("");
}