当前位置: 首页 > 知识库问答 >
问题:

javaFX将ObservableList与表绑定

闾丘文昌
2023-03-14

我在将dsata绑定到tabl时遇到了一些麻烦;JavaFX中的E

我有我的模型controtor.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 + "]";
}
<?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>
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);

    }
}

共有1个答案

卫阳炎
2023-03-14

您需要使用属性才能有绑定。你必须把你的男女生改成这样;

private StringProperty mNombre;

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

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

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

 类似资料:
  • 我试图找到一种简单的方法来链接下载类型的树视图到相同类型的可观察列表。 主控制器。JAVA Download.java 如何实现按对象删除(下载)机制,是否有更简单的方法将observablelist的项绑定到treeview?

  • 我想将所有囚犯数据显示到一个TableView中。囚犯看起来像这样(所有代码都是一个示例): 然后我有了我的TableView:数据是一个可观察列表 这工作正常,但我的问题是,如何在TableView中添加大小写?我试过了 但它不起作用。当然,我没有忘记在最后将所有列添加到TableView。

  • 我想在JavaFX中显示内容。下面是我用来将内容设置到表列中的代码。我遇到的问题是,它只显示一行。循环只迭代了5次:每次它都会获取的第一个值。 如果忽略行,则循环将迭代中的所有内容。

  • 问题内容: 有没有办法投来?我想不重复进行。 更具体地说,我正在使用ORMLite从数据库中获取数据,并且需要从DB中获取数据的方法作为输出。 目前我正在做这样的事情: 我想做这样的事情: 问题答案: 你可以做

  • 我的JavaFX应用程序应该如下所示: 现在,我要确保从table视图中选择另一个人后,detail视图立即适应。 到目前为止我的课: 属性在应用程序启动时创建一次,然后通过构造函数传递给所有UI类。 但是这个绑定并没有像预期的那样工作。我可以更改什么以使绑定正确工作并更改属性?

  • 我最近正在使用javaFx,并希望通过绑定堆栈更新实现观察者模式,使用javaFx中的ListView或TableView。但是,我不知道要对我的ComplexNumberStack类做什么更改。