【问题标题】:Populating Table Javafx from Object [duplicate]从对象填充表 Javafx [重复]
【发布时间】:2017-11-28 08:37:06
【问题描述】:

谁能帮助我如何填充表格中的单元格?我不知道我哪里做错了。

public class SpareParts extends Application {
private ObservableList<Part> oblist;

@Override
public void start(Stage primaryStage) throws Exception {
    Group root = new Group();
    Scene scene = new Scene(root, 600, 400);
    root.getChildren().add(table());
    primaryStage.setTitle("doing things");
    primaryStage.setScene(scene);
    primaryStage.show();

}

private TableView table() {
    final TableView table = new TableView<>();
    final Label label = new Label("Table list");
    label.setFont(new Font("Arial", 10));
    PartsList p = new PartsList();
    p.addToList();

    table.setEditable(true);

    TableColumn identification = new TableColumn("ID");
    identification.setCellFactory(new PropertyValueFactory<>(p.getList().get(0).getID()));
    TableColumn make = new TableColumn("Make");
    make.setCellFactory(new PropertyValueFactory<>(p.getList().get(0).getMake()));
    TableColumn material = new TableColumn("Material");
    material.setCellFactory(new PropertyValueFactory<>(p.getList().get(0).getMaterial()));
    table.setItems(p.getList());
    table.getColumns().addAll(identification, make, material);
    return table;
}

public static void main(String[] args) {
    launch(args);

}

零件类代码:

public class Part {
private String ID;
private String make;
private String material;

public Part(String iD, String make, String material) {
    super();
    ID = iD;
    this.make = make;
    this.material = material;
}

public String getID() {
    return ID;
}

public String getMake() {
    return make;
}

public String getMaterial() {
    return material;
}

和partList类

public class PartsList {
private ObservableList<Part> list=FXCollections.observableArrayList();
public  void addToList() {
    Part a=new Part("1", "make", "material");
    Part b=new Part("2", "make", "material");
    Part c=new Part("3", "make", "material");
    Part d=new Part("4", "make", "material");
    list.add(a);
    list.add(b);
    list.add(c);
    list.add(d);

}
public ObservableList<Part> getList() {
    return list;
}

【问题讨论】:

  • 了解绑定

标签: java javafx populate


【解决方案1】:

我真的看不出 PartsList.java 的必要性 这只应该填充您的表格视图:

private TableView<Part> tableView = new TableView<Part>();
private TableColumn<Part, String> make= new TableColumn<Part, String>();
private TableColumn<Part, String> material= new TableColumn<Part, String>(); 
private ObservableList<Part> list=FXCollections.observableArrayList();
//here initialise list or anything
make.setCellValueFactory(new PropertyValueFactory<Part, String>("make"));
material.setCellValueFactory(new PropertyValueFactory<Part, String>("material"));
tableView.setItems(list);

【讨论】:

  • 嗨,Khalil,谢谢 - 我设法以某种方式成功地进行了更改。但是,我没有看到之前和现在写的内容有太大的不同 - 我有没有机会解释为什么在我的情况下它不起作用? BR
  • @HauptmanKoening p.getList().get(0).getID() 和 p.getList().get(0).getMake() 和 p.getList().get(0) .getMaterial() 是错误的方法,这将分别返回列表字段中的第一个 itme,而它应该是字段本身名称的属性
猜你喜欢
  • 2018-05-20
  • 2016-10-15
  • 1970-01-01
  • 2010-12-05
  • 2013-12-28
  • 2015-08-15
  • 1970-01-01
  • 2017-07-13
  • 1970-01-01
相关资源
最近更新 更多