2012-11-15 21 views
10

我想從JavaFX 2.0中的TableView中獲取選擇。 什麼情況是,我需要你在tableview中選擇希望該行的值有人能幫助我從JavaFX 2.0中的TableView中讀取選擇

如將放在桌子上

我的意思是我希望得到您所選擇的數據和如果有任何處理事件以自動獲取所選行的方法

+0

願意幫忙,如果我能夠。儘管如此,仍然需要看看你的代碼。 –

回答

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); 
      } 
      }); 
+0

這正是我想要的,謝謝你的幫助,任何你推薦我的書java fx – carson314

+1

我知道javafx2唯一的書http://www.amazon .com/Pro-JavaFX-Definitive-Clients-Technology/dp/1430268727/ref = sr_1_1?ie = UTF8&qid = 1353159870&sr = 8-1&keywords = javafx + pro – invariant

+0

我現在遇到類似的問題,我不能感謝不變爲你的答案。 –

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 
+0

我的意思是我想要得到您選擇的數據,並且如果有任何方法來處理事件以自動獲取選定的行 – carson314

4

它仍然不是很清楚,我是你正在嘗試做的...

然而,越來越選定行:

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

如果有需要另一個窗格變得可見或另一個窗口顯示只是添加一個事件處理程序的onclicked財產或這樣的?

這是你的意思嗎?

+0

他希望在用戶在TableView中選擇一行時複製數據,因此他想知道哪個事件將在我們選擇一行時被調用。 – invariant

+0

啊現在它有道理:)但我看到你已經回答了它 – Perneel

3
​​

使用此代碼,你可以從JavaFX的泰伯維細胞選擇的值。

謝謝..