`
悠悠我心2010
  • 浏览: 16764 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

如何让Jtable不可编辑?

阅读更多
Java GUI编程,从mysql中获取的数据需要放到JTable中!如何控制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方法吗?
分享到:
评论

相关推荐

    Java数据库查询结果的输出

     //数据模型不可编辑,该方法设置为空  public Class getColumnClass(int c){  return getValueAt(0,c).getClass();  }//取得列所属对象类  public boolean isCellEditable(int row,int column){  return...

    cyber_kustom_component:该框架旨在帮助开发接口,为组件提供易于编辑的特征

    该项目旨在开发具有可定制的Swing组件的库。 使用Cyber​​KustomComponent库,您可以快速编辑组件的主要视觉特征。 要将新组件添加到netbeans面板,请。 可以通过下载Jar 版本0.1.0具有以下组件: -KTextField...

    疯狂JAVA讲义

    6.4.5 缓存实例的不可变类 186 6.5 抽象类 188 6.5.1 抽象方法和抽象类 188 6.5.2 抽象类的作用 191 6.6 更彻底的抽象:接口 192 6.6.1 接口的概念 192 6.6.2 接口的定义 193 6.6.3 接口的继承 195 6.6.4 ...

    campus-automation:Campus Automation 是一个 Java 图形用户界面应用程序,可存储学生记录,如名字、姓氏、录取编号等。它还存储四次内部考试的学生分数。 详细信息存储在 MySQL 数据库中

    校园自动化Campus Automation 是一个基于 GUI 的应用程序,可用于存储学生记录。 它完全是用Java编写的,使用的数据库是MySql。 学生记录包括名姓录取编号手机号码性别分支性别出生日期 该应用程序还提供了保存学生...

    JAVA_API1.6文档(中文)

    javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing.border 提供围绕 Swing 组件绘制特殊边框的类和接口。 javax.swing.colorchooser 包含供 ...

    java api最新7.0

    javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing.border 提供围绕 Swing 组件绘制特殊边框的类和接口。 javax.swing.colorchooser 包含供 ...

    [Java参考文档].JDK_API 1.6

    javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing.border 提供围绕 Swing 组件绘制特殊边框的类和接口。 javax.swing.colorchooser 包含供 ...

    JavaAPI1.6中文chm文档 part1

    javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing.border 提供围绕 Swing 组件绘制特殊边框的类和接口。 javax.swing.colorchooser 包含供 ...

    JavaAPI中文chm文档 part2

    javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing.border 提供围绕 Swing 组件绘制特殊边框的类和接口。 javax.swing.colorchooser 包含供 ...

    [Java参考文档]

    javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing.border 提供围绕 Swing 组件绘制特殊边框的类和接口。 javax.swing.colorchooser 包含供 ...

    Java 1.6 API 中文 New

    javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。 javax.swing.border 提供围绕 Swing 组件绘制特殊边框的类和接口。 javax.swing.colorchooser 包含供 ...

    javaSE代码实例

    17.1.5 可变尺寸线程池的使用 378 17.1.6 延迟线程池的使用 380 17.1.7 使用自定义参数的线程池 381 17.2 有返回值的线程调用 384 17.2.1 Callable接口简介 384 17.2.2 Future接口简介 384 17.2.3 ...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例045 用数组设置JTable表格的列名与列宽 55 3.2 数组操作 57 实例046 数组的下标界限 57 实例047 按钮控件数组实现计数器界面 58 实例048 复选框控件数组 59 实例049 用数组反转字符串 60 3.3 数组排序与查询 61 ...

Global site tag (gtag.js) - Google Analytics