2014-05-05 18 views
5

Chcę usunąć wybrany wiersz z tabeli w java. Zdarzenie należy wykonać, klikając przycisk. Będę podziękować, jeśli ktoś pomoże ...usunąć wybrany wiersz z jtable na przycisku kliknij

Na przykład istnieje tabela o nazwie sub_table z 3 kolumnami, tj. Sub_id, sub_name, class. po wybraniu jednego z wierszy z tej tabeli i kliknięciu przycisku usuwania, należy usunąć dany wiersz.

+1

Soooooo ..... żadnego kodu? –

+0

możliwy duplikat [tego] (http://stackoverflow.com/questions/1117888/how-to-remove-a-row-from-jtable) jeden. – Parasu

+0

nie ... jestem całkowicie zatrzymany plz pomoc – kdubey007

Odpowiedz

6

To bardzo proste.

  • Dodaj ActionListener na przycisku.
  • Usunięcie zaznaczonego wiersza z modelu dołączonego do tabeli. Kod

próbki: (tabela posiadające 2 kolumny)

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

Nic nie warta, że ​​indeks "view" podany przez 'table.getSelectedRow()' nie zawsze jest taki sam jak indeks "model". Na przykład, jeśli tabela jest posortowana, wszystkie wskaźniki mogą być różne. Możesz przekonwertować indeks z 'getSelectedRow()' na indeks modelu za pomocą ['table.convertRowIndexToModel (int index)'] (https://docs.oracle.com/javase/8/docs/api/javax/swing/ JTable.html # convertRowIndexToModel-int-). – cubrr

+0

@cubrr Tak, masz rację. Dzięki za poprawienie tego. – Braj

Powiązane problemy