Javafx - Scene Builder - 如何获取表的选定值

时间:2014-03-25 15:18:36

标签: java javafx scenebuilder

我是Java FX和场景构建者的新手。

我有一个表格视图,填充了来自我的数据库的数据我已经开始工作了,这里是代码:

public class GridPaneController implements Initializable {

// Table
@FXML
TableView<Box> table;
@FXML
TableColumn<Box, Integer> boxId;
@FXML
TableColumn<Box, String> name;
@FXML
TableColumn<Box, Integer> groesse;
@FXML
TableColumn<Box, String> einstreu;
@FXML
TableColumn<Box, Boolean> fenster;
@FXML
TableColumn<Box, String> standort;
@FXML
TableColumn<Box, Integer> tagessatz;

ObservableList<Box> data = FXCollections.observableArrayList();

@Override
public void initialize(URL location, ResourceBundle resources) {
    boxId.setCellValueFactory(new PropertyValueFactory<Box, Integer>("boxId"));
    name.setCellValueFactory(new PropertyValueFactory<Box, String>("name"));
    groesse.setCellValueFactory(new PropertyValueFactory<Box, Integer>("groesse"));
    einstreu.setCellValueFactory(new PropertyValueFactory<Box, String>("einstreu"));
    fenster.setCellValueFactory(new PropertyValueFactory<Box, Boolean>("fenster"));
    standort.setCellValueFactory(new PropertyValueFactory<Box, String>("standort"));
    tagessatz.setCellValueFactory(new PropertyValueFactory<Box, Integer>("tagessatz"));

    List<Box> boxen = serv.zeigeAlleBoxen();    
    for( Box b : boxen ) {
        data.add(b);
    }
    table.setItems(data);
}

}

我现在想做什么:

我的场景中有一个“详细信息”部分,该部分应显示此表中当前所选表条目的详细信息。我不知道的是如何将当前选中的表条目的值放入我的代码中。

更清楚一点: 在我的详细信息部分,我有两个标签:

@FXML
String label_name;

@FXML
String label_tagessatz;

当我点击特定的表条目时,label_namelabel_tagessatz应更新为单击的表条目的值。我假设我应该定义一个在表视图的onclick事件上调用的方法,但是如何获取所选表条目的值?

我认为甚至更好的方法来解决这个问题:我必须将标签的textproperty绑定到选定的表元素。现在我仍然需要知道如何获得这个。

1 个答案:

答案 0 :(得分:1)

table.getSelectionModel().selectedItemProperty().addListener(
            (ObservableValue<? extends Box> ov, Box b, Box b1) -> {
    label_name.textProperty().bind(b1.nameProperty());
});

您需要在Box类中使用nameProperty()方法。