10

JavaFX 2.0 で 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 セルから選択した値を取得できます。

ありがとう..

于 2014-02-26T09:22:27.437 に答える