没有合适的资源?快使用搜索试试~ 我知道了~
中级SWING-JTable属性
需积分: 10 9 下载量 15 浏览量
2009-03-03
12:04:45
上传
评论
收藏 9KB TXT 举报
温馨提示
试读
6页
中级SWING-J中级中级SWING-JTable属性SWING-JTable属性Table属性
资源推荐
资源详情
资源评论
开始修改 JTable 的最简单方式就是开始修改其 属性。JTable 类提供了许多许多函数,允许迅速地调整它的外观,不需要做任何过于困难的编码。正如您目前为止已经发现的,这些修改属性用的函数对于简单的实例来说还好,但是对于更复杂的需求来说则不够(您会发现这个命题在整个 Swing 中不断重复)。JTable 属性
这些函数包括:
setAutoCreateColumnsFromModel():此函数告诉表格根据 TableModel 自动创建类;在一般实践中,它应当设置为 true。
setAutoResizeMode():此函数改变当用户调整 JTable 列尺寸时的行为。有五个可能的值,每个值都会改变用户调整列尺寸时其他列尺寸的变化方式:
AUTO_RESIZE_OFF:其他列不变。
AUTO_RESIZE_NEXT_COLUMN:只有下一列改变大小。
AUTO_RESIZE_SUBSEQUENT_COLUMNS:当前调整大小的那一列之后的每一列的大小都将发生变化。
AUTO_RESIZE_LAST_COLUMN: 只有最后一列的大小发生变化,可以保证所有列占据的空间与表格空间相同,因此就不要求水平滚动。
AUTO_RESIZE_ALL_COLUMNS:在用户选中的列的大小发生变化时,其余所有列均发生变化。
setCellSelectionEnabled():把这个设为 true,以允许在用户选择某一个单元格;在默认情况下,用户会选择一行。
setColumnSelectionAllowed():如果这个设为 true,那么当用户单击单元格时,单元格的整个列都会被选中。
setGridColor():修改网格线的颜色。
setIntercellSpacing():修改单元格间隔,因此也将影响网格线的粗细。
setRowHeight():修改表的行高。
setRowSelectionAllowed():如果这个设为 true,那么当用户单击单元格时,将选中包含该单元格的那一整行。
setSelectionBackground():修改选中单元格的背景颜色。
setSelectionForeground():修改选中单元格的前景颜色。
setBackground():修改未选中单元格的背景颜色。
setForeground():修改未选中单元格的前景颜色。
setShowGrid():允许完全隐藏网格。
可以看到,不用太费力就可对 JTable 做许多事。这些属性允许您对 JTable 进行调整,以满足自己在应用程序中的需求。但是,虽然这些为数不多的属性很好,但是它们无法解决示例应用程序更迫切的需求。
TableRenderer 第 3 页(共6 页)
这些函数包括:
setAutoCreateColumnsFromModel():此函数告诉表格根据 TableModel 自动创建类;在一般实践中,它应当设置为 true。
setAutoResizeMode():此函数改变当用户调整 JTable 列尺寸时的行为。有五个可能的值,每个值都会改变用户调整列尺寸时其他列尺寸的变化方式:
AUTO_RESIZE_OFF:其他列不变。
AUTO_RESIZE_NEXT_COLUMN:只有下一列改变大小。
AUTO_RESIZE_SUBSEQUENT_COLUMNS:当前调整大小的那一列之后的每一列的大小都将发生变化。
AUTO_RESIZE_LAST_COLUMN: 只有最后一列的大小发生变化,可以保证所有列占据的空间与表格空间相同,因此就不要求水平滚动。
AUTO_RESIZE_ALL_COLUMNS:在用户选中的列的大小发生变化时,其余所有列均发生变化。
setCellSelectionEnabled():把这个设为 true,以允许在用户选择某一个单元格;在默认情况下,用户会选择一行。
setColumnSelectionAllowed():如果这个设为 true,那么当用户单击单元格时,单元格的整个列都会被选中。
setGridColor():修改网格线的颜色。
setIntercellSpacing():修改单元格间隔,因此也将影响网格线的粗细。
setRowHeight():修改表的行高。
setRowSelectionAllowed():如果这个设为 true,那么当用户单击单元格时,将选中包含该单元格的那一整行。
setSelectionBackground():修改选中单元格的背景颜色。
setSelectionForeground():修改选中单元格的前景颜色。
setBackground():修改未选中单元格的背景颜色。
setForeground():修改未选中单元格的前景颜色。
setShowGrid():允许完全隐藏网格。
可以看到,不用太费力就可对 JTable 做许多事。这些属性允许您对 JTable 进行调整,以满足自己在应用程序中的需求。但是,虽然这些为数不多的属性很好,但是它们无法解决示例应用程序更迫切的需求。
TableRenderer 第 3 页(共6 页)
在前面一节中,您看到了可以修改单元格选中和未选中时的前景色和背景色。这是很好的特性,但是好处是有限的:如果还想修改字体怎么办?如果还想根据单元格的特定值修改颜色,又该怎么办?
表格单元格的这种更高级的绘制由一个叫做 TableRenderer 的接口处理的。创建实现这个接口的类,就可以创建定制调色板,做自己要做的任何类型的绘制。JTable 会把所有绘制任务交给这个新类。
对于示例应用程序,我们要把表格的外观修改得与以下规则匹配:
给未选中的行提供白色背景和黑色普通文本前景。
给选中的行提供绿色背景和黑色文本前景。
给包含机票售罄航班的行提供黑灰色背景和白色文本前景。
使用新的TableRenderer 的第一步就是告诉 JTable 用它取代自己的内置定制渲染器。(JTable 有一个默认的表格单元渲染器,我们要覆盖它,用它进行我们自己的绘制。)通过把这个渲染器附着到 Object.class ,可以成功地告诉 JTable 要对每个单元格使用我们定制的渲染器。
getTblFlights().setDefaultRenderer(Object.class, new FlightTableRenderer());
既然这一步很快完成了,那么让我们来看看 FlightTableRenderer 本身。FlightTableRenderer 利用了内置的 Swing 类 DefaultCellRenderer,这个类提供了一个良好的起点。我们可以扩展和介绍这个类中的方法,进行我们自己的绘制。实际的绘制逻辑应当是自解释的。
public class FlightTableRenderer extends DefaultTableCellRenderer
{
public Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column)
{
setText(value.toString());
剩余5页未读,继续阅读
资源评论
LHT521
- 粉丝: 0
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功