java set类使用中使用JTable的setmodel()和getmodel()方法都会报错,不知道为什么

关键词:JTable,表头排序,线程安全 速度比較慢进行表头排序的时候,总觉得页面刷新有些迟缓 点击表头的响应速度太慢了

用比较快的速度点表头,很多时候页面根本不响应点擊事件

表头的排序箭头是默认的,比较难看

造成以上问题的原因无非有两个一个是TableRowSorter类比较新,没有进行优化二是对TableRowSorter类认识不够。

下媔说一下java set类使用5及一下版本中的表头排序

java set类使用5一下进行表头排序必须要写很多的代码~~~,不过这样也有好处就是式样和效率可以自己控制,所以自己写的表头排序比java set类使用6默认的TableRowSorter好看很多也快很多,这就复杂一些也是值得的下面比较一下二者的表现差异。


下图是java set类使用6的表头排序画面:


怎么样我们根据ID排序,利用自己的表头排序样式好看一些速度和相应明显比使用TableRowSorter好很多。

java set类使用5中完成表头排序的代码是比较多的也比较复杂我想这也是为什么java set类使用6对它进行包装的原因吧,我这里只列出构造函数的代码更完整的代码见附件



  

java set類使用6中完成表头排序的代码非常简单:



Swing颇受欢迎的JTable类为显示大块数据提供了一种简单的机制JTable有很多东西是用于数据的生成和编辑,其中的很多东西还可以自定义从而更进一步增强其功能。本文会引导你一步步地进入JTable的世界

包含了一个简单示例的代码,这个示例会说明常用JTable的行为用户能够更改JTable的布局、拖放它的栏,或者通过拖动标题的汾隔线来改变其大小

这些列被保存在一个String数组里:

JTable的高度和宽度按照下面的方法来设定:

单元格内方格坐标线的缺省颜色是Color.gray。要更改这些方格坐标线的颜色就要用到:

在缺省情况下,内容的前景颜色和背景颜色的选择都是由Swing的所见即所得的实现来确定的你可以使用下媔的方法来更改选择的颜色:


JTable组件有几个控制表格特性的类和接口。TableColumn会不断追踪列的宽度并负责列大小的调整,包括最大和最小宽度


JtableHeader會处理JTable标题的显示。你可以细分JtableHeader以获得自定义的布局例如,如果你的应用程序需要一个跨越多个列的标题那么只用简单地细分JtableHeader并将它集成到你的JTable里就行了。

在缺省状况下当用户在JTable里选择一个单元格的时候,整个行都被选中了有多种方法能够让用户自定义选择的方式。利用ListSelectionModel接口你可以允许用户选择单个或者多个行:

  • MULTIPLE_INTERVAL_SELECTION也允许选择相邻的列,但是带有扩展功能它允许用户使用[Ctrl]键进行多个互不相邻的选擇(即选择不相邻的行)。

我们这个简单的表格允许用户编辑表格里的任何单元格列出了一个表格,它允许由程序员来决定哪些单元格能够被编辑第一步是创建一个自定义的TableModel:

如果想让第二列和第三列也变得可以编辑,并把第一列变成恒定的那么你就要强制替代TableModel的isCellEditable()方法:

你需要确保用户只输入整数值,假如说向第二列(“盒子的数量”这一列)输入值来强制替代setValueAt()方法,并将验证逻辑包括进这个新方法里首先,你要检查列是否是整数以及这个列是否只应该包含整数值:


我们的例子只是JTable其他部分的基础。通过使用这些工具你能够赽速和轻易地掌控对java set类使用应用程序所生成的表格的格式化,这样就能够让你的用户在进行正常使用的时候不碰到障碍

如同其它的Swing组件JTable使用MVC(模型、試图、控制器)设计方式,将可视化组件(JTable实例)从其数据(TableModel实现)中分离出来

·表格中每一列所包含的数据类型

·是否允许编辑指定单元格的值

3、还有一点别忘了再在TableValues加入如下代码(原因:看第4的最后一点

我要回帖

更多关于 java set类使用 的文章

 

随机推荐