2012-11-15 3 views
10

JavaFX 2.0의 TableView에서 선택을 얻으려고합니다. 무슨 일하는 누군가가 나에게 도움이 될 수 있습니다 나는 희망이있는 tableview에서 선택한 행의 값을 얻을 필요가있다JavaFX 2.0의 TableView에서 선택 읽기

테이블에 배치 할 수 있듯이 내가 선택한 데이터를 얻을하려는 의미

및 선택한 행을 자동으로 가져 오는 이벤트를 처리 할 수있는 방법이 있다면

+0

도와 드릴 수 있으면 도와 주시겠습니까? 지금까지 코드를 볼 필요가 있습니다. –

답변

9

당신은 당신의 작업 :

예제 코드를 달성하기 위해 ChangeListenerClipboard이 필요합니다.

감사합니다.

+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에서 현재 선택된 셀의 행 번호를 가져와야합니다. 선택한 행을 받고, 그러나

그것은 아직도 당신이 뭘 하려는지 나에게하지 분명
// 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

...

:이 작업을 수행하려면

는있는 TableView의 selectionModel의 요청

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

또 다른 창을 표시 할 필요가 있는지 또는 표시 할 다른 창이 필요하면 eventhandler를 onclicked 속성 등에 추가하십시오.

그게 무슨 뜻입니까? 당신은 자바 FX의 tableview 셀에서 선택한 값을 얻을 수있는이 코드를 사용하여

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

사용자가 TableView에서 행을 선택했을 때 데이터를 복사하려고하므로 어떤 이벤트가 발생했는지 알고 싶습니다. 행을 선택할 때 호출됩니다. – invariant

+0

아아 이제는 의미가 있습니다. :) 그러나 나는 당신이 이미 그것을보고있는 것을 보았습니다. – Perneel

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

:

관련 문제