删除GUI中表中的数据
我有疑问,当用户输入密钥时,如何从GUI中的jTable中删除所有数据? 谢谢
您可以设置新的空数据模型:
TableModel newModel = new DefaultTableModel(); jtable.setModel(newModel);
您需要了解JTable是数据视图,而实际数据位于TableModel中 。 如果需要清除表格,则需要清除TableModel。
如果您的TableModel是AbstractTableModel ,则必须提供3种方法的实现:
public int getRowCount(); public int getColumnCount(); public Object getValueAt(int row, int column);
通常,实际数据对象存储在附加数据结构(例如列表)中,然后AbstractTableModel查询该列表。
List objects = new ArrayList (); public int getRowCount() { return objects.size(); } // How many columns you make depends on what features of the objects you're exposing. public int getColumnCount() { return NUMBER_OF_COLUMNS; } public Object getValueAt(int row, int column) { DomainObject object = objects.get(row); ... // pull out the property based on the column they pass in } // By exposing this method, you can allow your Controller code to reach into this model // and delete all the rows. public void clear() { objects.clear() }
HH建议你做的是更改JTable的模型以引用空模型,这实际上将清除表格。 但是,列等不会被正确保留(新的DefaultTableModel不知道这些列名称是什么)。
在您研究了视图和模型如何更合适之后,请查看GlazedLists 。 它允许以非常强大的方式创建TableModel,它提供数据的动态视图,例如通过过滤掉与某些条件不匹配的行。
总结一下 – 你不会在JTable上找到一个清除其内容的方法,因为这是TableModel的工作。 您需要某种方法来确保清除TableModel的后备数据结构。
如果您使用的是DefaultTableModel,那么您可以使用:
model.setRowCount(0);
这比创建新的DefaultTableModel更好。 创建新的TableModel会导致重新创建TableColumnModel,这意味着所有TableColumns将调整为默认值,并按照模型中列的顺序重新创建。 用户可能已更改这些属性,不应强制再次执行此操作。
如果您只是删除包含粒子值的某些行,则可以使用DefaultTableModel.removeRow(…)方法。 确保首先删除模型末尾的行并倒数至0。
在addActionListener
调用j_table
方法
button1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { j_table.removeAll(); data_model_table.setRowCount(0); } });
- java hibernate entity:允许通过id和object本身设置相关对象
- Statement.execute(sql)vs executeUpdate(sql)和executeQuery(sql)
- 如何在Java中显示树层次结构?
- 有一个很好的J2ME IDE吗?
- java.lang.Object的Eclipse外部null注释#getClass()
- Java字符文字值与getNumericValue()
- JavaFX fxml – 如何将Spring DI与嵌套的自定义控件一起使用?
- 错误 – 多次出现具有不同值的’contentType’是非法的
- System.out对象是属于类System还是类PrintStream?