2014-02-20 171 views
0

I'have一些麻烦结合dsata我TABL; E在JavaFX的>JavaFX的绑定ObservableList与表

我有我的模型 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); 

    } 
} 

enter image description here

我在做什么错???

非常感谢!!!!!对不起我的英语!

回答

1

您需要使用属性才能拥有绑定。你必须改变你的coed到这样的东西;

private StringProperty mNombre; 

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

如果你不想性能,你必须编写自定义单元格工厂

上面显示的代码是创建 TableView中时域对象设计的JavaFX最短的代码(另外,PropertyValueFactory也支持普通的JavaBean 属性,虽然有一个警告,所以请参阅 类文档以获取更多信息)。当情况并非如此, 有必要提供一个自定义的单元格值工厂。 http://docs.oracle.com/javafx/2/api/javafx/scene/control/TableView.html

注意,示例代码不会为你工作,如你有获得mNombre的公共方法。如果你想使用POJO,那么你至少需要一个getter和setter,即。 public String getMNombre(){return mNombre;}

+0

只改变getmNombre()getMNombre()...它的工作原理! 非常感谢!你是最棒的! – vlopezla