10

我正在尝试从 JavaFX 2.0 中的 TableView 中获取选择。发生的事情是我需要获取您在 tableview 中选择的行的值我希望有人可以帮助我

就像放在桌子上一样

我的意思是我想获取您选择的数据,如果有任何方法可以处理事件以自动获取选定的行

4

4 回答 4

9

你需要ChangeListenerClipboard来完成你的任务:)

示例代码:

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); 
            }
            });
于 2012-11-15T21:02:21.483 回答
6

如果我理解正确,您想检索当前在 TableView 中选择的单元格的行号。

为此,请请求 TableView 的 SelectionModel:

    // 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
于 2012-11-15T08:38:21.473 回答
4

我仍然不清楚您要做什么...

但是,获取选定的行:

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

如果需要另一个窗格变得可见或另一个窗口显示只需将事件处理程序添加到 onclicked 属性等?

是这个意思吗?

于 2012-11-15T19:16:09.367 回答
3
    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 Cell 中获取选定的值。

谢谢..

于 2014-02-26T09:22:27.437 回答