我有一些麻烦将dsata绑定到我的Tabl; e在JavaFX>
我有我的模特 Conductor.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>
和我的控制器clas
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);
}
}
我做错了什么???
感谢很多!!!!!抱歉我的英语!
答案 0 :(得分:1)
您需要使用属性才能拥有绑定。你必须把你的男女同校变成这样的东西;
private StringProperty mNombre;
public Conductor(String nombre, String NIF, String autonomo,
String empresa, String CIF) {
mNombre = new SimpleStringProperty(nombre);
如果您不想要属性,则必须编写自定义单元工厂
上面显示的代码是创建a的最短代码 使用JavaFX属性设计域对象时的TableView 记住(另外,PropertyValueFactory支持普通的JavaBean 属性也是如此,虽然有一点需要注意,所以请参考 类文档以获取更多信息)。如果不是这样, 有必要提供自定义单元值工厂。 http://docs.oracle.com/javafx/2/api/javafx/scene/control/TableView.html
请注意,示例代码对您无效,因为您没有获取mNombre的公共方法。如果你想使用POJO,你至少需要一个吸气剂和固定剂,即。 public String getMNombre(){return mNombre;}
。