Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<ul> <li>your core for removing rows is wrong, have to start with Max index, otherwise deleted unselected row, </li> </ul> <p>code example</p> <pre><code>import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import javax.swing.table.*; public class RemoveAddRows extends JFrame { private static final long serialVersionUID = 1L; private Object[] columnNames = {"Type", "Company", "Shares", "Price"}; private Object[][] data = { {"Buy", "IBM", new Integer(1000), new Double(80.50)}, {"Sell", "MicroSoft", new Integer(2000), new Double(6.25)}, {"Sell", "Apple", new Integer(3000), new Double(7.35)}, {"Buy", "Nortel", new Integer(4000), new Double(20.00)}, {"Buy", "IBM", new Integer(1000), new Double(80.50)}, {"Sell", "MicroSoft", new Integer(2000), new Double(6.25)}, {"Sell", "Apple", new Integer(3000), new Double(7.35)}, {"Buy", "Nortel", new Integer(4000), new Double(20.00)}, {"Buy", "IBM", new Integer(1000), new Double(80.50)}, {"Sell", "MicroSoft", new Integer(2000), new Double(6.25)}, {"Sell", "Apple", new Integer(3000), new Double(7.35)}, {"Buy", "Nortel", new Integer(4000), new Double(20.00)} }; private JTable table; private DefaultTableModel model; public RemoveAddRows() { model = new DefaultTableModel(data, columnNames) { private static final long serialVersionUID = 1L; @Override public Class getColumnClass(int column) { return getValueAt(0, column).getClass(); } }; table = new JTable(model); table.setPreferredScrollableViewportSize(table.getPreferredSize()); table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); JScrollPane scrollPane = new JScrollPane(table); add(scrollPane); JButton button1 = new JButton("Remove all rows"); button1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { int[] selectedRows = table.getSelectedRows(); for (int i = selectedRows.length - 1; i &gt; -1; i--) { model.removeRow(selectedRows[i]); } /*if (model.getRowCount() &gt; 0) { for (int i = model.getRowCount() - 1; i &gt; -1; i--) { model.removeRow(i); } }*/ System.out.println("model.getRowCount() ---&gt;" + model.getRowCount()); } }); JButton button2 = new JButton("Add new rows"); button2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { Object[] data0 = {"Buy", "IBM", new Integer(1000), new Double(80.50)}; model.addRow(data0); Object[] data1 = {"Sell", "MicroSoft", new Integer(2000), new Double(6.25)}; model.addRow(data1); Object[] data2 = {"Sell", "Apple", new Integer(3000), new Double(7.35)}; model.addRow(data2); Object[] data3 = {"Buy", "Nortel", new Integer(4000), new Double(20.00)}; model.addRow(data3); System.out.println("model.getRowCount() ---&gt;" + model.getRowCount()); } }); JPanel southPanel = new JPanel(); southPanel.add(button1); southPanel.add(button2); add(southPanel, BorderLayout.SOUTH); } public static void main(String[] args) { RemoveAddRows frame = new RemoveAddRows(); frame.setDefaultCloseOperation(EXIT_ON_CLOSE); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } } </code></pre> <ul> <li>I'm Win user and never heard beep from Win Platform, have to post an <a href="http://sscce.org/" rel="nofollow">SSCCE</a></li> </ul>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload