gpt4 book ai didi

javaFX 将 ObservableList 与表绑定(bind)

转载 作者:行者123 更新时间:2023-12-01 13:23:29 25 4
gpt4 key购买 nike

我在 JavaFX 中将 dsata 绑定(bind)到我的 Tabl;e 时遇到一些问题>

我已经有了我的模型导体.java

package model;

公开课指挥{

private Integer mID;

private String mNombre;

private String mNIF;

private String mAutonomo;

private String mEmpresa;

private String mCIF;

public Conductor(){}

public Conductor(String nombre, String NIF, String autonomo,
String empresa, String CIF) {
super();
this.mNombre = nombre;
this.mNIF = NIF;
this.mAutonomo = autonomo;
this.mEmpresa = empresa;
this.mCIF = CIF;
}

public Conductor(Integer ID,String nombre, String NIF, String autonomo,
String empresa, String CIF) {
this.mID = ID;
this.mNombre = nombre;
this.mNIF = NIF;
this.mAutonomo = autonomo;
this.mEmpresa = empresa;
this.mCIF = CIF;
}


public Integer getmID() {
return mID;
}

public void setmID(Integer mID) {
this.mID = mID;
}

public String getmNombre() {
return mNombre;
}

public void setmNombre(String mNombre) {
this.mNombre = mNombre;
}

public String getmNIF() {
return mNIF;
}

public void setmNIF(String mNIF) {
this.mNIF = mNIF;
}

public String getmAutonomo() {
return mAutonomo;
}

public void setmAutonomo(String mAutonomo) {
this.mAutonomo = mAutonomo;
}

public String getmEmpresa() {
return mEmpresa;
}

public void setmEmpresa(String mEmpresa) {
this.mEmpresa = mEmpresa;
}

public String getmCIF() {
return mCIF;
}

public void setmCIF(String mCIF) {
this.mCIF = mCIF;
}

@Override
public String toString() {
return "Conductor [mID=" + mID + ", mNombre=" + mNombre + ", mNIF="
+ mNIF + ", mAutonomo=" + mAutonomo + ", mEmpresa=" + mEmpresa
+ ", mCIF=" + mCIF + "]";
}

}

和我的布局文件>SituacionView.fxml

<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>

<BorderPane prefHeight="700.0" prefWidth="1000.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" fx:controller="controller.SituacionController">
<!-- TODO Add Nodes -->
<left>
<VBox prefHeight="1000.0" prefWidth="200.0">
<children>
<Label text="Conductores" />
<TableView fx:id="conductorTable" prefHeight="200.0" prefWidth="200.0">
<columns>
<TableColumn editable="false" id="nombreConductorColumn" maxWidth="5000.0" minWidth="10.0" prefWidth="200.0" text="Nombre" fx:id="nombreConductorColumn" />
</columns>
</TableView>
<Label fx:id="labb" text="Label" />
</children>
</VBox>
</left>
</BorderPane>

和我的 Controller 类

public class SituacionController {

@FXML
private BorderPane mSituaciónBorderPane;

//Parte Izquierda
@FXML
private TableView<Conductor> conductorTable;

@FXML
private TableColumn<Conductor, String> nombreConductorColumn;

@FXML
Label labb;

@FXML
private TableView<Orden> ordenesAsignadasSituacionTableView;

/**
* Lista Observable de conductores para la table
*/
private ObservableList<Conductor> conductorObservableList = FXCollections.observableArrayList();


@FXML
private void initialize() {
labb.setText("sadfa");

nombreConductorColumn.setCellValueFactory(new PropertyValueFactory<Conductor, String>("mNombre"));

conductorObservableList.add(new Conductor("AA", "AA", "AA", "AA", "AA"));

conductorTable.setItems(conductorObservableList);

}
}

enter image description here

我做错了什么???

非常感谢!!!!抱歉我的英语!

最佳答案

您需要使用属性才能进行绑定(bind)。你必须将你的 coed 更改为类似这样的内容;

private StringProperty mNombre;

public Conductor(String nombre, String NIF, String autonomo,
String empresa, String CIF) {
mNombre = new SimpleStringProperty(nombre);

如果您不需要属性,则必须编写自定义单元工厂

The code shown above is the shortest possible code for creating a TableView when the domain objects are designed with JavaFX properties in mind (additionally, PropertyValueFactory supports normal JavaBean properties too, although there is a caveat to this, so refer to the class documentation for more information). When this is not the case, it is necessary to provide a custom cell value factory. http://docs.oracle.com/javafx/2/api/javafx/scene/control/TableView.html

请注意,示例代码也不适合您,因为您没有获取 mNombre 的公共(public)方法。如果您想使用 POJO,那么您至少需要一个 getter 和 setter,即。 public String getMNombre(){return mNombre;}

关于javaFX 将 ObservableList 与表绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21911183/

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