gpt4 book ai didi

java - 如何将自定义类正确导入到此 FXML 文件中?

转载 作者:太空宇宙 更新时间:2023-11-04 11:18:55 27 4
gpt4 key购买 nike

我正在制作一个简单的食谱应用程序来练习 JavaFX,但遇到了问题。我似乎无法导入此类:

package application;

import javafx.beans.property.SimpleStringProperty;

public class Recipe {
private final SimpleStringProperty Name = new SimpleStringProperty("");

public Recipe() {
this("");
}

public Recipe(String recipeName) {
setRecipeName(recipeName);

}

public String getRecipeName() {
return Name.get();
}

public void setRecipeName(String rName) {
Name.set(rName);
}

}

进入此 FXML View 文件:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.control.cell.*?>
<?import javafx.collections.*?>
<?import fxmltableview.*?>
<?import java.lang.String?>
<?import application.Recipe ?>


<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1">
<children>
<TableView prefHeight="400.0" prefWidth="600.0">
<columns>
<TableColumn prefWidth="599.0" text="Column One" >
<cellValueFactory><PropertyValueFactory property="Name" />
</cellValueFactory>
</TableColumn>
</columns>
<items>
<FXCollections fx:factory="observableArrayList">
<Recipe Name="Test Name"/>
</FXCollections>
</items>
</TableView>
</children>
</AnchorPane>

我一直收到线路错误。非常感谢任何帮助。

最佳答案

Java 中的属性名称由方法名称决定,而不是字段名称。由于您的 Recipe 类定义了方法 getRecipeName()setRecipeName(...),因此属性名称为 recipeName。因此你需要

 <Recipe recipeName="Test Name"/>

您可以为该字段命名任何您喜欢的名称 - 它不会影响属性名称的含义。但是,遵循 standard naming conventions 是一个很好的做法。并使字段名称以小写开头。在 JavaFX 中定义属性访问器方法也很有用。这是一个例子:

public class Recipe {
private final SimpleStringProperty name = new SimpleStringProperty("");

public Recipe() {
this("");
}

public Recipe(String recipeName) {
setRecipeName(recipeName);

}

public String getRecipeName() {
return name.get();
}

public void setRecipeName(String rName) {
name.set(rName);
}

public StringProperty recipeNameProperty() {
return name ;
}

}

关于java - 如何将自定义类正确导入到此 FXML 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45152730/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com