当前位置: 技术问答>java相关
关于JTable的一些problem?
来源: 互联网 发布时间:2015-05-09
本文导语: 工作中经常要使用到表,我是在表中直接添加,修改数据的,可是当我们输入的焦点任然在表格中的某个单元格的时候,没有触发单元格编辑完成事件就保存数据时,结果是这个单元格的内容无法保存,有时还会出现...
工作中经常要使用到表,我是在表中直接添加,修改数据的,可是当我们输入的焦点任然在表格中的某个单元格的时候,没有触发单元格编辑完成事件就保存数据时,结果是这个单元格的内容无法保存,有时还会出现异常?不知各位可有同样遭遇,可有什么好的解决办法?
|
同意gularess的方法,好像是用table.getCellEditor().stopEditing()方法可以结束当前CellEditor的编辑
要弹出Frame的话可以用一个JButton的作Editor,要简单的话就直接给JTable加一个Mouse监听好了,不过不如写CellEditor规范
要弹出Frame的话可以用一个JButton的作Editor,要简单的话就直接给JTable加一个Mouse监听好了,不过不如写CellEditor规范
|
这个问题我也碰到过,CellEditor中有stopEditing的方法,具体形式忘了,但好像必须自己定义的CellEditor,如DefaultCellEditor editor = new DefaultCellEditor(new JTextField());否则会有JTable类会有空指针错误。
|
用JButton作CellEditor的方法:
写一个类extends AbstractCellEditor implements TableCellEditor;
实现Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column)方法,在需要的(row,column)返回你的JButton(随便什么Component都可以,包括内部有其他Component的Container,所以我觉得JTable功能真的很强大)
覆盖Object getCellEditorValue()方法返回编辑后的对象
写一个类extends AbstractCellEditor implements TableCellEditor;
实现Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column)方法,在需要的(row,column)返回你的JButton(随便什么Component都可以,包括内部有其他Component的Container,所以我觉得JTable功能真的很强大)
覆盖Object getCellEditorValue()方法返回编辑后的对象
|
直接在表中操作,意外的事比较多!!!
对表的操作不在表体中进行,而是弹出一个Frame或Dialog进行添加/修改操作。
对表的操作不在表体中进行,而是弹出一个Frame或Dialog进行添加/修改操作。
|
gja106说得对
不一定非要拘于形式
不一定非要拘于形式
|
我也这样想,可是弹出Frame好像不是那么简单啊。