2012-11-15 17 views
10

में TableView से चयन पढ़ें I JavaFX 2.0 में एक तालिका दृश्य से चयन प्राप्त करने का प्रयास कर रहा हूं। क्या होता है कि मैं किसी को मेरी मदद कर सकते पंक्ति आप tableview में चयनित मुझे आशा है कि का मान प्राप्त करने की आवश्यकता हैJavaFX 2.0

के रूप में एक मेज पर रखा जाएगा

मेरा मतलब है मैं डेटा आपके द्वारा चुने प्राप्त करना चाहते हैं और यदि चयनित पंक्ति स्वचालित रूप से

+0

अगर मैं सक्षम हूं, तो मदद करना अच्छा लगेगा। हालांकि अब तक अपना कोड देखना होगा। –

उत्तर

9

आप ChangeListener और Clipboard जरूरत है अपने कार्य :)

उदाहरण कोड पूरा करने के लिए:

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

यह वही था जो मैं चाहता था, आपकी मदद के लिए धन्यवाद, कोई भी पुस्तक जो आप मुझे सलाह देते हैं जावा एफएक्स – carson314

+1

एकमात्र पुस्तक जिसे मैं javafx2 http: //www.amazon के लिए जानता हूं .com/Pro-JavaFX- परिभाषित-क्लाइंट-टेक्नोलॉजी/डीपी/1430268727/रेफरी = sr_1_1? यानी = यूटीएफ 8 और क्यूआईडी = 1353159870 और एसआर = 8-1 और कीवर्ड = javafx + pro – invariant

+0

मैं अब इसी तरह की समस्याओं के लिए दौड़ रहा हूं और मैं पर्याप्त रूप से इनवेरिएंट का धन्यवाद नहीं कर सकता तुम्हारे जवाब के लिए। –

6

यदि मैं आपको सही ढंग से समझता हूं, तो आप तालिका तालिका के अंदर वर्तमान में चुने गए सेल की पंक्ति संख्या पुनर्प्राप्त करना चाहते हैं।

ऐसा करने के लिए, 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(); 

यदि कोई अन्य फलक दिखाई दे रही है या कोई अन्य विंडो दिखाने की आवश्यकता है तो बस एक अनुमानित संपत्ति में इवेंटहालर जोड़ें या ऐसा?

क्या यह आपका मतलब है?

+0

प्राप्त करने के लिए किसी ईवेंट को संभालने का कोई तरीका है, तो वह डेटा को प्रतिलिपि बनाना चाहता है जब कभी भी उपयोगकर्ता ने तालिका दृश्य में एक पंक्ति का चयन किया, तो वह जानना चाहता है कि कौन सी घटना जब हम एक पंक्ति का चयन करेंगे तो कहा जाएगा। – 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); 
     } 
     } 
    }); 

आप JavaFX tableview सेल से चयनित मूल्य प्राप्त कर सकते हैं इस कोड का उपयोग करना।

धन्यवाद ..