如何让Jtable不可编辑?

声咏歌RK
2013-10-13 · TA获得超过2888个赞
知道小有建树答主
回答量:1029
采纳率:0%
帮助的人:2390万
展开全部
如何控制JTable各行各列能被选择,但是单元格中的内容不被修改? 昨天晚上仔细研究了一下,发现针对此问题,网上有很多回答有不当之处,估计大多是copy来copy去,自己并没有进行测试! JTable类下有一个子类:DefaultTableModel。 DefaultTableModel类有一个方法:isCellEditable,该方法可使JTable能被选但不能被编辑。具体示例如下: static DefaultTableModel tableModel; static JTable jTable; tableModel = new DefaultTableModel(); jTable=new JTable(tableModel){ public boolean isCellEditable(int row, int column) { return false;}//表格不允许被编辑 } }; 这个代码是使整个JTable不可编辑。如果控制row和column的值,可以控制任何一个单元格可编辑或不可编辑。 网上很多回答的主要有两种错误:1、建议直接使用JTable的方法 setEnabled(false), 例如:jTable.setEnabled(false),但是这种方法只是使jTable失效,即让jTable只能看,不能做其他任何操作。2、在定义DefaultTableModel类时使用isCellEditable方法。 例如:tableModel = new DefaultTableModel(){public boolean isCellEditable(int row, int column) {return false;}}; 其实这是错误的,虽然我刚开始也是这么认为的。 这样使用isCellEditable没有作用,必须在定义JTable类时使用,例如正文中的正确代码! 为什么会这样?难道JTable本身也有isCellEditable方法吗? 请哪位朋友告诉我?谢谢啊!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式