从JavaFX TableView获取所选项目

Jos*_*b99 31 java javafx tableview

如何从TableViewJavaFX中获取所选项?

我目前正在使用

ObservableList selectedItems = taview.getSelectionModel().getSelectedItems();
Run Code Online (Sandbox Code Playgroud)

但这并没有返回选择模型中的一个选定项目.

Bra*_*zic 79

好吧,假设您有一个名为的数据模型类Person.这条路:

Person person = taview.getSelectionModel().getSelectedItem();
System.out.println(person.getName());    
Run Code Online (Sandbox Code Playgroud)

请注意,TableView必须将a Person作为类型参数以避免强制转换:

@FXML
private TableView<Person> taview;
Run Code Online (Sandbox Code Playgroud)

要么

TableView<Person> taview = new TableView<>();
Run Code Online (Sandbox Code Playgroud)

选择行后,您将返回一个Person实例.然后用该实例做你想做的事.


Jav*_*Man 8

    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);
         }
         }
     });
Run Code Online (Sandbox Code Playgroud)

使用此代码,您可以从JAVAFX TABLEVIEW Cell获取所选值.

谢谢..