我想根据我之前获得的ID向表中添加行。 我已经设法在SWT中做到了,但我不知道如何在javaFx中做到这一点。
以下是我为SWT编写的代码:
int availableDesings = designManagement.getNumberOfDesigns();
ArrayList<Design> designs = designManagement.getDesignArray();
for (int i = 0 ; i< availableDesings ; i++){
TableItem item = new TableItem(table, SWT.NONE);
item.setText (0, String.valueOf(designs.get(i).getId()));
item.setText (1, String.valueOf(designs.get(i).getPart_name()));
}
有人可以帮我翻译代码到javaFx吗?
答案 0 :(得分:2)
如果你在JavaFX中有一个TableView,它被分配给ObservableList
个项目:
TableView<String> table = new TableView<>();
ObservableList<String> list = FXCollections.observableArrayList();
table.setItems(list);
然后,您可以通过向列表中添加数据来向表中添加数据:
table.getItems().add("New Item");
或者,您可以直接将数据添加到列表中:
list.add("New Item");
有关更多信息,请查看此链接:
答案 1 :(得分:0)
private ObservableList<Design> data = FXCollections.observableArrayList();
.....
....
data.addAll(designManagement.getDesignArray()); //all you items
TableView<Design> table = new TableView<>();
TableColumn<Design, String> column1 = new TableColumn<>();
column1.setCellValueFactory(new PropertyValueFactory<Design, String>("id"));
TableColumn<Design, String> column2 = new TableColumn<>();
column2.setCellValueFactory(new PropertyValueFactory<Design, String>("part_name"));
table.getColumns().add(column1);
table.getColumns().add(column2);
table.setItems(data);
答案 2 :(得分:0)
你实际上可以在javafx中向tableview添加行,尽管我还没有尝试过使用它。但我用TableColumn完成了它。 这是我为我的小项目做的一些代码
TableView<Person> personTable = new TableView<>();
TableColumn<Person,String> nameColumn=new TableColumn<>("Name");
nameColumn.setMinWidth(200);
nameColumn.setCellValueFactory(new PropertyValueFactory<>("Name"));
TableColumn<Person, Gender> genderColumn=new TableColumn<>("Gender");
genderColumn.setMinWidth(30);
genderColumn.setCellValueFactory(new PropertyValueFactory<>("gender"));
TableColumn<Person,String> mobileNumberColumn=new TableColumn<>("mobileNumber");
mobileNumberColumn.setMinWidth(150);
mobileNumberColumn.setCellValueFactory(new PropertyValueFactory<>("mobileNumber"));
TableColumn<Person, Blood> bloodColumn=new TableColumn<>("Blood Type");
bloodColumn.setMinWidth(30);
bloodColumn.setCellValueFactory(new PropertyValueFactory<Person, Blood>("blood"));
personTable.setItems(getPerson());//setting content retrieved from the database into the table
personTable.getColumns().addAll(nameColumn, genderColumn, mobileNumberColumn,bloodColumn);//adding all columns to table
所以这意味着什么时候我说 TableColumn mobileNumberColumn = new TableColumn&lt;&gt;(“mobileNumber”); 我的意思是mobileNumberColumn正在使用从中分配字符串的Person类。引号中的手机号码是表格的名称。
mobileNumberColumn.setCellValueFactory(new PropertyValueFactory&lt;&gt;(“mobileNumber”)); 上面的一行说明了列的值是类person的实例变量mobileNumber。但是为了使它工作,你应该在person类中有一个getMobileNumber()方法。它必须与tableView的工作方式完全相同。 希望这有帮助