JTable中删除一行数据

    Jtable中删除一行数据: import java.awt.BorderLayout; import java.awt.Component; import java.awt.Container; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.UIManager; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellRenderer; public class SimpleTableTest extends JFrame { private CustomModel model = null; private JTable jtable = null; private JScrollPane scrollPane = null; private JButton deleteRow = new JButton("deleteRow"); String[] columnNames = { "First Name", "Last Name", "Sport", "# of Years", "Vegetarian" }; Object[][] data = { { "Mary", "Campione", "Snowboarding", new Integer(5), new Boolean(false) }, { "Alison", "Huml", "Rowing", new Integer(3), new Boolean(true) }, { "Kathy", "Walrath", "Knitting", new Integer(2), new Boolean(false) }, { "Sharon", "Zakhour", "Speed reading", new Integer(20), new Boolean(true) }, { "Philip", "Milne", "Pool", new Integer(10), new Boolean(false) } }; class CustomModel extends DefaultTableModel { public CustomModel(Object[][] _data, Object[] _columnNames) { super(_data, _columnNames); } public void setValueAt(Object aValue, int row, int column) { if (aValue != null) { super.setValueAt(aValue, row, column); fireTableCellUpdated(row, column); } } public boolean isCellEditable(int row, int column) { return true; } public Class getColumnClass(int col) { try { return getValueAt(0, col).getClass(); } catch (NullPointerException e) { return Object.class; } } } public SimpleTableTest() { model = new CustomModel(data, columnNames); jtable = new JTable(model); scrollPane = new JScrollPane(jtable); scrollPane.setRowHeaderView(new CustomRowHeaderTable(jtable)); Container cp = getContentPane(); cp.setLayout(new BorderLayout()); cp.add(BorderLayout.NORTH, deleteRow); cp.add(BorderLayout.CENTER, scrollPane); pack(); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); deleteRow.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println(model.getRowCount()); model.removeRow(model.getRowCount() - 1); //scrollPane.updateUI(); } }); } //this class is used by CustomRowHeaderTable class CustomRowHeaderRenderer extends JLabel implements TableCellRenderer { JTable reftable; public CustomRowHeaderRenderer(JTable reftable) { this.reftable = reftable; } public Component getTableCellRendererComponent(JTable tableBean, Object obj, boolean isSelected, boolean hasFocus, int row, int col) { ((DefaultTableModel) tableBean.getModel()).setRowCount(reftable .getRowCount()); this.setOpaque(true); setBorder(UIManager.getBorder("TableHeader.cellBorder")); setHorizontalAlignment(CENTER); setText(String.valueOf(row + 1)); return this; } } //this class is used by JTableTest class CustomRowHeaderTable extends JTable { private DefaultTableModel rowheadmodel = null; public CustomRowHeaderTable(JTable _jtable) { rowheadmodel = new DefaultTableModel(1, 1); setModel(rowheadmodel); setEnabled(false); setAutoResizeMode(JTable.AUTO_RESIZE_OFF); getColumnModel().getColumn(0).setPreferredWidth(40); setDefaultRenderer(getColumnClass(0), new CustomRowHeaderRenderer( _jtable)); setPreferredScrollableViewportSize(new Dimension(getColumnModel() .getColumn(0).getPreferredWidth(), 0)); } } public static void main(String[] args) { new SimpleTableTest(); } }

本文转自:http://www2.matrix.org.cn/thread.shtml?topicId=35306&forumId=49

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值