单击TableView行设置文本到Lables

时间:2017-06-12 06:46:52

标签: java javafx binding

我如何点击TableView行中点击的工作人员,将文字更新为以下Lables中的Scene

enter image description here

这是我将文本设置为Lables的方法,但我不知道如何将它们绑定在一起。

@FXML private void rowSelected(){
    selectedItems =  radniciTabela.getSelectionModel().getSelectedItem();
    ime.setText(selectedItems.getIme());
    prezime.setText(selectedItems.getPrezime());
    godine.setText(selectedItems.getGodište());
    grad.setText(selectedItems.getGrad());
    adresa.setText(selectedItems.getAdresa());
    telefon.setText(selectedItems.getTelefon());
    email.setText(selectedItems.getMejl());}

2 个答案:

答案 0 :(得分:2)

使用更改侦听器并访问行中的所有数据,如:

这里用表格视图中使用的类替换T

 radniciTabela.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<T>() {
                @Override
        public void changed(ObservableValue<? extends T> observableValue, T oldValue,
                        T newValue) {
          if(newValue != null){
                ime.setText(newValue.getIme());
                prezime.setText(newValue.getPrezime());
                godine.setText(newValue.getGodište());
                grad.setText(newValue.getGrad());
                adresa.setText(newValue.getAdresa());
                telefon.setText(newValue.getTelefon());
                email.setText(newValue.getMejl());
           }
        }
    });

答案 1 :(得分:1)

您不必在那里使用@FXML注释,您必须以这种方式为您的TableView选择模型添加一个聆听者:

tableView.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
        if(newValue != null){
            rowSelected(newValue);
        }
    });

您可以从方法中删除selectedItems = radniciTabela.getSelectionModel().getSelectedItem();行并添加为参数。