2014-05-05 7 views
5

मैं जावा में किसी तालिका से चयनित पंक्ति को हटाना चाहता हूं। ईवेंट बटन क्लिक पर किया जाना चाहिए। अगर कोई मदद करता है तो मैं पूरी तरह से धन्यवाद दूंगा ...बटन पर jtable से चयनित पंक्ति को हटाएं

उदाहरण के लिए 3 कॉलम i.e sub_id, sub_name, class के साथ sub_table नाम की एक तालिका है। जब मैं उस तालिका से पंक्तियों में से एक का चयन करता हूं और उस बटन को हटाएं क्लिक करें जो विशेष पंक्ति हटा दी जानी चाहिए ..

+1

Soooooo ..... कोई कोड? –

+0

[इस] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/1117888/how-to-remove-a-row-from-jtable) एक। – Parasu

+0

नहीं ... मैं पूरी तरह से अटक गया हूँ कृपया मदद करें – kdubey007

उत्तर

6

यह बहुत आसान है।

  • बटन पर ActionListener जोड़ें।
  • तालिका से जुड़े मॉडल से चयनित पंक्ति हटाएं।

नमूना कोड: (तालिका 2 कॉलम होने)

Object[][] data = { { "1", "Book1" }, { "2", "Book2" }, { "3", "Book3" }, 
        { "4", "Book4" } }; 

String[] columnNames = { "ID", "Name" }; 
final DefaultTableModel model = new DefaultTableModel(data, columnNames); 

final JTable table = new JTable(model); 
table.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); 


JButton button = new JButton("delete"); 
button.addActionListener(new ActionListener() { 

    @Override 
    public void actionPerformed(ActionEvent arg0) { 
     // check for selected row first 
     if (table.getSelectedRow() != -1) { 
      // remove selected row from the model 
      model.removeRow(table.getSelectedRow()); 
     } 
    } 
}); 
+1

यह कुछ भी लायक नहीं है कि 'table.getSelectedRow() 'द्वारा दिया गया" व्यू "इंडेक्स हमेशा" मॉडल "इंडेक्स जैसा नहीं होता है। उदाहरण के लिए, यदि तालिका क्रमबद्ध की जाती है, तो सभी सूचकांक अलग-अलग हो सकते हैं। आप सूचकांक को 'getSelectedRow()' से मॉडल इंडेक्स में ['table.convertRowIndexToModel (int अनुक्रमणिका)'] (https://docs.oracle.com/javase/8/docs/api/javax/swing/ के साथ कनवर्ट कर सकते हैं। JTable.html # convertRowIndexToModel-int-)। – cubrr

+0

@ क्यूबर हाँ आप सही हैं। इसे ठीक करने के लिए धन्यवाद। – Braj

संबंधित मुद्दे