如何让Jtable不可编辑?
1个回答
展开全部
昨天晚上仔细研究了一下,发现针对此问题,网上有很多回答有不当之处,估计大多是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类下有一个子类: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类时使用,例如正文中的正确代码!
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询