`
悠悠我心2010
  • 浏览: 17240 次
  • 性别: 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方法吗?
分享到:
评论

相关推荐

    JTable (动态添加数据)

    确保`JTable`的列是可编辑的,或者根据需要设置不可编辑。在用户完成编辑后,可以捕获`TableCellEditor`的事件,更新JavaBean,并调用数据库更新方法。 8. **JTableTest**: 这个文件名可能表示的是一个测试类,...

    JTable示例

    **Java中的JTable** 在Java Swing库中,`JTable`是用于展示表格数据的关键组件。...理解和熟练使用`JTable`对于开发Java桌面应用程序是必不可少的。通过实践和深入学习,你可以创建出功能强大的数据管理界面。

    Swing JTable 常用属性

    可以使用表头和表数据创建一个 JTable,并且让表单元格不可改,例如: ``` String[] headers = {"表头一", "表头二", "表头三"}; Object[][] cellData = null; DefaultTableModel model = new DefaultTableModel...

    JAVA表格控件JTable常用操作详解.doc

    3. **不可编辑的表格**:可以自定义`DefaultTableModel`子类,覆盖`isCellEditable`方法返回`false`,使所有单元格不可编辑,如示例中的代码所示。 **二、表格列的操作** 1. **关闭自动调整宽度**:`table....

    JTable 操作单元格 行 列

    5. **排序行**:`JTable`本身不支持排序,但可以结合`RowSorter`实现排序功能。 ### 列操作 1. **添加列**:`addColumn(Object columnIdentifer, Object[] data)`方法用于添加新列,`columnIdentifer`是列头名称,...

    JTable添加CheckBox

    通过上述代码,我们可以创建一个包含`CheckBox`的`JTable`,并且表头的`JCheckBox`可以实现全选/全不选的功能。这种功能在很多数据操作应用中都非常实用,例如在邮件客户端、任务管理器或者文件管理器中选择多项进行...

    JAVA JTREE JTABLE实例代码

    总之,JTree和JTable是Java GUI编程中不可或缺的工具,熟练掌握它们的使用能够极大地提升开发效率,提供用户友好的数据展示界面。通过实践和研究提供的实例代码,开发者可以深入理解这两个组件的工作原理,从而更好...

    JTable常见用法细则.doc

    3. **创建不可编辑的表格**: - **代码示例**: ```java String[] headers = {"表头一", "表头二", "表头三"}; Object[][] cellData = null; DefaultTableModel model = new DefaultTableModel(cellData, ...

    Java Swing实现JTable检测单元格数据变更事件的方法示例

    1. 双击单元格使其处于可编辑状态后,即使没有做出任何修改,当单元格失去焦点时,该事件将被激活。 2. 通过该事件,我们可以获取单元格最新的数据,却无法获取原有数据。 二、TableCellListener 的解决方案 经过...

    java表格控件JTable常用操作详解.pdf

    这种方式可以创建一个带有表头和表数据的表格控件,并且让表单元格不可编辑。 二、对表格列的控制 JTable 提供了多种方式来控制表格列,以下是一些常用的操作: 1. 设置列不可随容器组件大小变化自动调整宽度:`...

    理解jtable 用法

    总的来说,`JTable`是Java Swing中处理表格数据的强大工具,它提供了丰富的功能和高度的可定制性,是开发桌面应用时处理数据展示的常用组件。理解其构造函数、基本用法以及与数据模型的交互,将有助于构建更加复杂和...

    JTable实例大全

    在Java编程领域,Swing库是用于创建图形用户界面(GUI)的重要工具,而`JTable`是Swing中一个核心组件,...在学习和实践中,务必注意`JTable`的灵活性和可扩展性,这将帮助你构建出更加高效和用户友好的桌面应用程序。

    GridBagLayout && JTable 排序

    而`JTable`是Swing提供的一种用于展示表格数据的组件,通常用于数据的显示、编辑和排序。这篇博客文章“GridBagLayout && JTable 排序”可能涉及了如何在使用`GridBagLayout`布局的同时,实现`JTable`的数据排序功能...

    JAVA中JTable组件详解实例

    3. **创建不可编辑的表格** 如果需要创建一个用户不能修改表格内容的`JTable`,可以通过继承`DefaultTableModel`并重写`isCellEditable`方法来实现: ```java String[] headers = {"表头一", "表头二", "表头三...

    JTable_JTree.rar_JTable Java_JTree JTable_jtree

    总之,`JTable`和`JTree`是Java Swing中不可或缺的组件,用于展示和操作表格及树形数据。通过理解和实践,开发者能够构建出交互性强、功能丰富的桌面应用程序。在“JTable_JTree.rar”中,你将找到相关的示例代码,...

    java中JTable的应用】.pdf

    在实际开发中,程序代码不可避免地会出现错误。文档内容中的异常处理部分,使用了try-catch语句来捕获异常,并输出错误信息。在处理数据库连接和操作时,正确的异常处理尤为重要,它不仅可以帮助开发者定位问题,还...

    java Jtable 经典列设置+表格颜色.docx

    - **设置表格模型**:使用`DefaultTableModel`作为数据模型,并设置了表格不可编辑。 - **添加滚动面板**:为了更好地适应窗口,使用`JScrollPane`包裹`JTable`,并设置了默认尺寸。 - **设置表格样式**:包括行高、...

    JTable详细使用demo

    通过自定义渲染器和编辑器,我们可以实现各种复杂的显示和交互效果,使其成为Java GUI开发中不可或缺的一部分。在`SwingTest`这个例子中,开发者通过实际操作展示了这些高级用法,为学习者提供了宝贵的参考。

    JAVA中JTable组件详解实例[借鉴].pdf

    3. **不可编辑的表格**:通过创建一个默认表格模型并重写`isCellEditable`方法来创建一个所有单元格都不可编辑的表格。 接着,我们将讨论如何控制表格的列: 1. **禁用自动调整列宽**:`table.setAutoResizeMode...

    java JTable用法详解

    在这种情况下,通过继承 `DefaultTableModel` 并覆盖 `isCellEditable` 方法来实现单元格的不可编辑性。 #### 二、对表格列的控制 表格列的控制包括设置列的宽度、列的数量以及添加或删除列等操作。 1. **设置列...

Global site tag (gtag.js) - Google Analytics