【问题标题】:How can I convert String into TextField, javaFX. from the child class如何将 String 转换为 TextField、javaFX。从孩子班
【发布时间】:2020-11-27 14:22:07
【问题描述】:

我想为 Faculty 类(FacultyApp 的子类)创建一个对象,我可以在其中输入一些值

错误:不兼容的类型:字符串无法转换为 TextField 教员教员=新教员(“”,“”,“”);

FXMLDocumentController

公共类 FXMLDocumentController 实现 Initializable {

private Label label;
@FXML
private TextField employeeName;
@FXML
private TextField employeeTitle;
@FXML
private TextField emailAddress;
@FXML
private Button SaveButton;




@Override
public void initialize(URL url, ResourceBundle rb) {
    // TODO
}    
public void setNAME(TextField employeeName) {
     employeeName.getText();    
}
public void setADDRESS(TextField emailAddress) {
    emailAddress.getText();
}
public void setTITLE(TextField employeeTitle) {

employeeTitle.getText();
}

@FXML
private void saveInfo(ActionEvent event) {
    Faculty faculty = new Faculty(" ", " ", " ");
    String textField = new TextField().toString();
    faculty.setNAME(employeeName);
    faculty.setADDRESS(emailAddress);
    faculty.setTITLE(employeeTitle);
    
    String message = "YOUR INPUT HAS BEEN SAVED";
    Alert a = new Alert(AlertType.INFORMATION); 
    a.setContentText(message +"\nEmployee Name: "+employeeName +"\nEmployee Title: "+ employeeTitle +"\nEmail Address: " + emailAddress);
    a.show();  
    
}

}

childClass from MainClass

公共类 Faculty 扩展了 FacultyApp{ 私有 TextField 标题、名称、地址;

public Faculty (TextField employeeName, TextField emailAddress, TextField employeeTitle){
    title = employeeTitle;
    name = employeeName;
    address = emailAddress;
}

public void setNAME(TextField employeeName) {
    name = employeeName;
}
public TextField  getNAME(){
    return name;
}
public void setADDRESS(TextField emailAddress) {
    address = emailAddress;
}
public TextField getADDRESS(){
    return address;
}

public void setTITLE(TextField employeeTitle) {
    title = employeeTitle;
}
public TextField getTITLE(){
    return title;
}

}

【问题讨论】:

  • a) 不要传递节点(用于数据),而是对数据进行建模,使其不知道在哪里/如何可视化 b) 请使用 java 命名约定 c) 花点时间格式化你的代码! d) 完成有关 java 语言基础的教程 .. (类似 new TextField().toString 完全是 .. [审查] - 你希望发生什么?)

标签: java javafx netbeans scenebuilder


【解决方案1】:

您的 Faculty 类的构造函数需要 3 个 TextField 类型的参数,但您试图传递 3 个 String 对象。

既然你使用了setter,为什么不移除当前的构造函数,使用默认构造函数创建一个新的Faculty对象呢?

所以从Faculty 类中删除它:

public Faculty (TextField employeeName, TextField emailAddress, TextField employeeTitle){
    title = employeeTitle;
    name = employeeName;
    address = emailAddress;
}

并在FXMLDocumentController 更改

Faculty faculty = new Faculty(" ", " ", " ");

进入

Faculty faculty = new Faculty();

【讨论】:

    猜你喜欢
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 2020-06-11
    • 1970-01-01
    • 2015-09-02
    • 2021-07-26
    • 2011-08-24
    • 1970-01-01
    相关资源
    最近更新 更多