- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 JavaFX 应用程序,其场景有两个 TableView ,第一个可以正常工作,第二个则不能。
第二个表格 View 只显示它应该显示的 5 列中的 2 列的内容,而第二列上的内容实际上应该在最后一列上。我之前使用过javaFX几次,这是我第一次看到这样的东西,我修改了我的代码2或3次,寻找可能错误或拼写错误的东西,但我一直没能找到它。
这就是表格 View 显示的内容。
这是它包含的对象类的代码。
public class Producte {
private int codi;
private String nom;
private String descripcio;
private float preu;
private int codiFabricant;
public Producte(String nom, String descripcio, float preu,
int codiFabricant) {
this.nom = nom;
this.descripcio = descripcio;
this.preu = preu;
this.codiFabricant = codiFabricant;
}
public Producte(int codi, String nom, String descripcio, float preu,
int codiFabricant) {
this.codi = codi;
this.nom = nom;
this.descripcio = descripcio;
this.preu = preu;
this.codiFabricant = codiFabricant;
}
public int getCodi() {
return codi;
}
public void setCodi(int codi) {
this.codi = codi;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getDescripcio() {
return descripcio;
}
public void setDescripcio(String descripcio) {
this.descripcio = descripcio;
}
public float getPreu() {
return preu;
}
public void setPreu(float preu) {
this.preu = preu;
}
public int getCodiFabricant() {
return codiFabricant;
}
public void setCodiFabricant(int codiFabricant) {
this.codiFabricant = codiFabricant;
}
@Override
public String toString() {
return "Producte [codi=" + codi + ", nom=" + nom + ", descripcio="
+ descripcio + ", preu=" + preu + ", codiFabricant="
+ codiFabricant + "]";
}
}
这是加载场景的方法中的代码。第一个 TableView 是dirTable,第二个 TableView (不能正常工作的是prodTable)。预先感谢您的任何帮助:/
static Scene directorScene() {
GridPane gridPane = new GridPane();
gridPane.setAlignment(Pos.CENTER);
gridPane.setVgap(25);
gridPane.setHgap(25);
director = DirectorFunctions.director;
final ObservableList<Director> dirList = FXCollections.observableArrayList();
dirList.add(director);
TableView<Director> dirTable = new TableView<>();
dirTable.setItems(dirList);
TableColumn<Director, String> fabCol = new TableColumn<>("Fabricant");
TableColumn<Director, String> dniCol = new TableColumn<>("DNI");
TableColumn<Director, String> nomCol = new TableColumn<>("Nom");
TableColumn<Director, String> mailCol = new TableColumn<>("Mail");
TableColumn<Director, String> passCol = new TableColumn<>("Pass");
fabCol.setCellValueFactory(new PropertyValueFactory<Director,String>("Nom"));
dniCol.setCellValueFactory(new PropertyValueFactory<Director,String>("DniDirector"));
nomCol.setCellValueFactory(new PropertyValueFactory<Director,String>("NomDirector"));
mailCol.setCellValueFactory(new PropertyValueFactory<Director,String>("MailDirector"));
passCol.setCellValueFactory(new PropertyValueFactory<Director,String>("PasswordDirector"));
dirTable.getColumns().setAll(fabCol, dniCol, nomCol, mailCol, passCol);
dirTable.setMinWidth(450);
dirTable.setMaxHeight(52);
dirTable.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
gridPane.add(dirTable, 0, 0);
Button modificarDirector = new Button("Modificar");
modificarDirector.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
// TODO Auto-generated method stub
}
});
gridPane.add(modificarDirector, 1, 0);
final ObservableList<Producte> prodList = FXCollections.observableArrayList();
for (Producte p:DirectorFunctions.productes.values()) {
prodList.add(p);
}
TableView<Producte> prodTable = new TableView<>();
prodTable.setItems(prodList);
TableColumn<Producte, String> codiPCol = new TableColumn<>("Codi");
TableColumn<Producte, String> nomPCol = new TableColumn<>("Nom");
TableColumn<Producte, String> descPCol = new TableColumn<>("Descripció");
TableColumn<Producte, String> preuPCol = new TableColumn<>("Preu");
TableColumn<Producte, String> fabPCol = new TableColumn<>("Fabricant");
codiPCol.setCellValueFactory(new PropertyValueFactory<Producte, String>("Codi"));
nomPCol.setCellValueFactory(new PropertyValueFactory<Producte, String>("Nom"));
nomPCol.setCellValueFactory(new PropertyValueFactory<Producte, String>("Descripcio"));
nomPCol.setCellValueFactory(new PropertyValueFactory<Producte, String>("Preu"));
nomPCol.setCellValueFactory(new PropertyValueFactory<Producte, String>("CodiFabricant"));
prodTable.getColumns().setAll(codiPCol, nomPCol, descPCol, preuPCol, fabPCol);
prodTable.setMinWidth(450);
prodTable.setMaxHeight(200);
prodTable.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
gridPane.add(prodTable, 0, 1);
Button nouButton = new Button("Nou");
nouButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
// TODO Auto-generated method stub
}
});
nouButton.setMinWidth(75);
Button modButton = new Button("Modificar");
modButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
// TODO Auto-generated method stub
}
});
modButton.setMinWidth(75);
Button delButton = new Button("Borrar");
delButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
// TODO Auto-generated method stub
}
});
delButton.setMinWidth(75);
Button backButton = new Button("Tornar");
backButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
// TODO Auto-generated method stub
}
});
backButton.setMinWidth(75);
gridPane.add(backButton, 1, 2);
VBox vbox = new VBox(25);
vbox.getChildren().addAll(nouButton, modButton, delButton);
gridPane.add(vbox, 1, 1);
Scene scene = new Scene(gridPane, 640, 480, Color.web("eee"));
return scene;
}
对于任何想看的人来说,这都是导演类(class)
public class Director {
private int codi;
private String nom;
private String dniDirector;
private String nomDirector;
private String mailDirector;
private String passwordDirector;
public Director(int codi, String nom, String dniDirector,
String nomDirector, String mailDirector, String passwordDirector) {
this.codi = codi;
this.nom = nom;
this.dniDirector = dniDirector;
this.nomDirector = nomDirector;
this.mailDirector = mailDirector;
this.passwordDirector = passwordDirector;
}
public int getCodi() {
return codi;
}
public void setCodi(int codi) {
this.codi = codi;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getDniDirector() {
return dniDirector;
}
public void setDniDirector(String dniDirector) {
this.dniDirector = dniDirector;
}
public String getNomDirector() {
return nomDirector;
}
public void setNomDirector(String nomDirector) {
this.nomDirector = nomDirector;
}
public String getMailDirector() {
return mailDirector;
}
public void setMailDirector(String mailDirector) {
this.mailDirector = mailDirector;
}
public String getPasswordDirector() {
return passwordDirector;
}
public void setPasswordDirector(String passwordDirector) {
this.passwordDirector = passwordDirector;
}
@Override
public String toString() {
return "Fabricant [codi=" + codi + ", nom=" + nom + ", dniDirector="
+ dniDirector + ", nomDirector=" + nomDirector
+ ", mailDirector=" + mailDirector + ", passwordDirector="
+ passwordDirector + "]";
}
}
最佳答案
我建议您对所有模型使用 JavaFX 属性。您可以在 here 中找到示例.
PropertyValueFactory<S,T>
查找 T
类型的属性在S
使用与您在构造函数中输入的名称相同的名称。
例如,在模型类 Product
中其中有一个 StringProperty 字段 name
,
new PropertyValueFactory<Product, String>("name")
将寻找:
nameProperty()
如果没有找到,则会进一步寻找getName()
并将其包裹在 ReadOnlyObjectWrapper
中在返回之前。
来自文档,
If no method matching this pattern exists, there is fall-through support for attempting to call get() or is() (that is, getFirstName() or isFirstName() in the example above). If a method matching this pattern exists, the value returned from this method is wrapped in a ReadOnlyObjectWrapper and returned to the TableCell
您的示例中的问题是您的表格列有一个 cellValueFactory ,它表示,
nomPCol.setCellValueFactory(new PropertyValueFactory<Producte, String>("Preu"));
但是你的 getter 方法返回 float
而不是String
public float getPreu() {
return preu;
}
关于JavaFX 表格 View 无法正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29181405/
我不知道这是不是问这种问题的最佳地点, 我看到一些 JavaFX伙计们,重新标记 一些问题通过替换 javafx来自 javafx-2并采用新的 javafx-8 .它被弃用了还是什么? 编辑 : 不
错误本身: Error:java: invalid flag: --add-modules=javafx.fxml,javafx.graphics,javafx.controls,javafx.bas
这个想法是让一个应用程序在每个显示器上显示两个不同的窗口(阶段),该应用程序应该知道计算机有多少个显示器及其分辨率。 javafx有可能吗? 最佳答案 对于当前版本的 JavaFX (2.2),您可以
我正在将我的项目从 javafx 1.3 转换为 javafx 2.1。但我对 javafx.lang 有疑问包裹。 最佳答案 JavaFX 1.3 lang 包内容被拆分并移至下一个位置: 时长变为
当我尝试将标签添加到 gridpane 中时,如第二张图片所示,它不起作用。我已经尝试了很多东西,比如添加 CSS,但它仍然无法正常工作。为什么第 113 和 114 行不起作用? (opcje.se
我有一个JavaFX ContextMenu分配给滚动面板的鼠标右键单击。它会打开,但在滚动 Pane 外部单击时不会关闭。我可以在滚动 Pane 中添加另一个鼠标事件以将其隐藏,但这只能解决1个问题
我有一个tableview,其中附有一个可观察到的自定义类对象的列表(类类型:SalesInvoiceNetSale)。该表中的所有数据都可以正常显示。可观察列表中的最后一项是总计行(类类型:Sale
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 2年前关闭。 Improve this questi
我想知道如何在JavaFX中绘制半圆。我尝试使用Shape和QuadCurve,但无法制作出完美的半圆。 这是我要绘制的图片: 最佳答案 您链接的图片实际上是一个半圆环。您可以通过绘制嵌套的2条圆弧和
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我正在寻找 JavaFX 支持的图像类型(最新)列表,例如PNG、JPEG、TIFF。不同的搜索引擎没有帮助......知道从哪里开始吗? 更特别的是,我对 16 位灰度图像(不同格式)和罕见的受支持
我希望在 javafx 中让标签每 0.1 秒闪烁一次。文本显示在后台运行的 ImageView gif 的顶部。我将如何去做,或者您对最佳方法有什么建议? 谢谢 最佳答案 @fabian 的解决方案
我需要测试所选项目的值以调用不同的方法,因此我编写了添加侦听器的代码,但是该代码生成语法错误 @FXML private JFXComboBox cmbComp; cmbComp.valuePrope
我正在 Javafx 中编写一个非常简单的应用程序,其中舞台上有一个带有文本框的按钮作为一个场景。现在,我想要的行为是,当我单击按钮时,我可以使用另一个按钮加载另一个场景和舞台上的一个文本框,然后删除
编辑:如果用户单击“删除”以删除 ListView 中的项目,我会弹出一个警告框。它有效,但我希望它能超越原来的舞台。它出现在我的第一台显示器上。有什么方法可以设置警报显示时的位置吗? 请注意,“所有
我想使用 JavaFX 编写一个笔画绘图应用程序。我有一个压敏绘图板,如果能够读取笔的压力和倾斜值,那就太好了。 JavaFX 有一个 API 可以处理鼠标、触摸和滑动输入,但似乎没有任何东西可以产生
我在 JavaFX 中使用条形图和折线图。当我使两个图表大小相同并将它们放在同一位置时,它们完美地相互重叠。我如何使折线图显示在条形图的顶部。 目前我已将它们的不透明度设置为 0.7,这样它们“看起来
此问题与 this 相关。现在我想为字段值等于某个值的行着色。 @FXML private TableView tv_mm_view; @FXML private Ta
我有一个程序,可以生成高度图(0-255 的整数的 2D 数组),并使用 Shape3D“Box”对象为每个“像素”构建 3D View ,其高度与其在高度图中的值成比例。这会创建一个看起来很酷的四四
我想为 JavaFX 创建上下文菜单。这是我测试过的代码。但是由于某种原因,当我右键单击树节点时没有上下文菜单。你能帮我找出我的错误吗。 import java.util.Arrays; import
我是一名优秀的程序员,十分优秀!