Прочитать выбор из TableView в JavaFX 2.0

Я пытаюсь получить выделение из TableView в JavaFX 2.0. что происходит, так это то, что мне нужно получить значение строки, выбранной вами в tableview. Надеюсь, кто-то может мне помочь.

Как было бы размещено на таблице

Я имею в виду, что хочу получить выбранные вами данные и если есть способ обработать событие, чтобы автоматически выбрать выбранную строку.

Ответ 1

вам нужно ChangeListener и Clipboard для выполнения вашей задачи:)

Пример кода:

Clipboard clipboard = Clipboard.getSystemClipboard(); 
  // add listner to your tableview selecteditemproperty   
userTable.getSelectionModel().selectedItemProperty().addListener( new ChangeListener() {
              // this method will be called whenever user selected row
            @override
             public void chnaged(ObservableValue observale, Object oldValue,Object newValue) {
               UserClass selectedUser = (UserClass)newValue;
             ClipboardContent content = new ClipboardContent();
                 // make sure you override toString in UserClass
             content.putString(selectedUser.toString()); 
             clipboard.setContent(content); 
            }
            });

Ответ 2

Если я правильно понял вас, вы хотите получить номер строки ячейки, которая в настоящее время выбрана внутри TableView.

Чтобы сделать это, запросите SelectionModel TableView:

    // tv is of type TableView
    TableView.TableViewSelectionModel selectionModel = tv.getSelectionModel();
    ObservableList selectedCells = selectionModel.getSelectedCells();
    TablePosition tablePosition = (TablePosition) selectedCells.get(0);
    int row = tablePosition.getRow(); // yields the row that the currently selected cell is in

Ответ 3

Мне все еще не ясно, что вы пытаетесь сделать...

Однако получение выбранной строки:

final Countries selectedCountry = tblCountries.getSelectionModel().getSelectedItem();

Если есть необходимость в том, что другая панель становится видимой или другое окно показывает просто добавить обработчик событий в свойство onclicked или такое?

Это то, что вы имеете в виду?

Ответ 4

    tableview.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
    @Override
    public void changed(ObservableValue observableValue, Object oldValue, Object newValue) {
        //Check whether item is selected and set value of selected item to Label
        if(tableview.getSelectionModel().getSelectedItem() != null) 
        {    
           TableViewSelectionModel selectionModel = tableview.getSelectionModel();
           ObservableList selectedCells = selectionModel.getSelectedCells();
           TablePosition tablePosition = (TablePosition) selectedCells.get(0);
           Object val = tablePosition.getTableColumn().getCellData(newValue);
           System.out.println("Selected Value" + val);
         }
         }
     });

Используя этот код, вы можете получить выбранное значение из ячейки JAVAFX TABLEVIEW.

Спасибо..