带有observablelist的TableView现在显示数据 - javafx

时间:2014-05-29 09:35:38

标签: javafx

我在Scene构建器中设计了这个简单的tableView。我有一个按下的按钮,它应该将ObservableList中的数据添加到表中,但数据不会出现。表格从"没有数据"到一个没有数据的可滚动表。

代码:

@FXML private TableView<Record> tableView;
static ObservableList<Record> dataen =
      FXCollections.observableArrayList(          
          new Record("January", 100),
          new Record("February", 200));

设置数据:

@FXML
private void handleButtonAction(ActionEvent event) {
      tableView.setItems(dataen);
     }

2 个答案:

答案 0 :(得分:2)

我猜你还没有为每个列指定任何TableColumns或CellValueFactories。请参阅JavaDoc for TableView。

您可以在SceneBuilder中添加TableColumns,并为每个分配一个fx:id
然后在你的initialize方法中添加例如:

monthCol.setCellValueFactory(new PropertyValueFactory("monthName"));

其中monthName指的是Record类中的方法monthNameProperty()

答案 1 :(得分:0)

解决方案是将下面的代码添加到initialize方法中。当我使用Scene Builder时,我不相信我必须这样做,结果我错了?

Month.setCellValueFactory(new PropertyValueFactory("fieldMonth"));
Value.setCellValueFactory(new PropertyValueFactory("fieldValue"));

tableView.setItems(dataen);