swing jtable 怎么实现 如果输入非数字就清除该单元格?

如果在单元格改变事件中该单元格table.getModel().addTableModelListener,会死循环;我查到了监听单元格编辑状态的方法CellEditor... 如果在单元格改变事件中该单元格table.getModel().addTableModelListener,会死循环;
我查到了监听单元格编辑状态的方法CellEditor的addCellEditorListener,这个方法应该怎么用呢?
谁能给我代码参考一下?
展开
 我来答
百度网友96ffcf7
2015-04-08 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22721 获赞数:118722
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部
创建table时使用 JTable table=new MyTable(rowData,columnname)即可,还有表格的其它效果可看代码注释,根据情况自行删改。MyTable类如下:

import java.util.Vector;

import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellRenderer;

/**
* 创建类,该类继承自JTable类成为表格
*/

public class MyTable extends JTable { // 实现自己的表格类
// 重写JTable类的构造方法
public MyTable(DefaultTableModel tableModel) {//Vector rowData, Vector columnNames
super(tableModel); // 调用父类的构造方法
}
// 重写JTable类的getTableHeader()方法
public JTableHeader getTableHeader() { // 定义表格头
JTableHeader tableHeader = super.getTableHeader(); // 获得表格头对象
tableHeader.setReorderingAllowed(false); // 设置表格列不可重排
DefaultTableCellRenderer hr = (DefaultTableCellRenderer) tableHeader
.getDefaultRenderer(); // 获得表格头的单元格对象
hr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER); // 设置列名居中显示
return tableHeader;
}
// 重写JTable类的getDefaultRenderer(Class<?> columnClass)方法
public TableCellRenderer getDefaultRenderer(Class<?> columnClass) { // 定义单元格
DefaultTableCellRenderer cr = (DefaultTableCellRenderer) super
.getDefaultRenderer(columnClass); // 获得表格的单元格对象
cr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER); // 设置单元格内容居中显示
return cr;
}
// 重写JTable类的isCellEditable(int row, int column)方法
public boolean isCellEditable(int row, int column) { // 表格不可编辑
return false;
}
}
追问
求不要乱回答,这样没用的。。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式