Прочитать выбор из 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.
Спасибо..