2017-06-12 49 views
0

我对怎样才能点击工人TableView行,在下面的Scene更新文本Lables在点击的TableView行设置文本标贴

enter image description here

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

@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());} 

回答

1

您不必使用那里的@FXML注解,你的监听器添加到您的TableView的选择模型是这样的:

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

而且你可以从删除selectedItems = radniciTabela.getSelectionModel().getSelectedItem();线你的方法并添加为参数。

+0

这给了我一个Exeption – Kvark900

+0

您可以更新的方法使用类代替T' – Kvark900

+0

有什么例外?你能复制并粘贴在这里吗? – Sunflame

2

使用变化监听器,并访问所有的数据行,如:

在这里与你在表视图

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()); 
      } 
     } 
    });