用Swing开发GUI程序(六)JTable
来源:互联网 发布:地球大炮 知乎 编辑:程序博客网 时间:2024/06/05 17:14
JTable 用来显示和编辑常规二维单元表。有关面向任务的文档和使用 JTable 的示例
构造方法
JTable 有很多用来自定义其呈现和编辑的工具,同时提供了这些功能的默认设置,从而可以轻松地设置简单表。例如,要设置一个 10 行 10 列的表:
(官方API例子)
TableModel dataModel = new AbstractTableModel() { public int getColumnCount() { return 10; } public int getRowCount() { return 10;} public Object getValueAt(int row, int col) { return new Integer(row*col); } }; JTable table = new JTable(dataModel); JScrollPane scrollpane = new JScrollPane(table);
设计使用 JTable 的应用程序时,务必要注意用来表示表数据的数据结构。DefaultTableModel 是一个模型实现,它使用一个 Vector 来存储所有单元格的值,该 Vector 由包含多个 Object 的 Vector 组成。除了将数据从应用程序复制到 DefaultTableModel 中之外,还可以用 TableModel 接口的方法来包装数据,这样可将数据直接传递到 JTable,如上例所示。这通常可以提高应用程序的效率,因为模型可以自由选择最适合数据的内部表示形式。在决定使用 AbstractTableModel 还是使用 DefaultTableModel 方面有一个好的实践经验,即在创建子类时使用 AbstractTableModel 作为基类,在不需要创建子类时则使用 DefaultTableModel。
下面的一些字段属性可以让你自己定义一下外观样式
AUTO_RESIZE_OFF
public static final int AUTO_RESIZE_OFF
不自动调整列的宽度;使用滚动条。
AUTO_RESIZE_NEXT_COLUMN
public static final int AUTO_RESIZE_NEXT_COLUMN
在 UI 中调整了一个列时,对其下一列进行相反方向的调整。
AUTO_RESIZE_SUBSEQUENT_COLUMNS
public static final int AUTO_RESIZE_SUBSEQUENT_COLUMNS
在 UI 调整中,更改后续列以保持总宽度不变;此为默认行为。
AUTO_RESIZE_LAST_COLUMN
public static final int AUTO_RESIZE_LAST_COLUMN
在所有的调整大小操作中,只对最后一列进行调整。
AUTO_RESIZE_ALL_COLUMNS
public static final int AUTO_RESIZE_ALL_COLUMNS
在所有的调整大小操作中,按比例调整所有的列。
dataModel
protected TableModel dataModel
表的 TableModel。
columnModel
protected TableColumnModel columnModel
表的 TableColumnModel。
selectionModel
protected ListSelectionModel selectionModel
表的 ListSelectionModel,用来追踪行选择。
tableHeader
protected JTableHeader tableHeader
表所使用的 TableHeader。
rowHeight
protected int rowHeight
表中每一行的高度,以像素为单位。
rowMargin
protected int rowMargin
每行中单元格之间间距的高度,以像素为单位。
gridColor
protected Color gridColor
网格的颜色。
showHorizontalLines
protected boolean showHorizontalLines
如果 showHorizontalLines 为 true,则表在单元格之间绘制水平行。
showVerticalLines
protected boolean showVerticalLines
如果 showVerticalLines 为 true,则表在单元格之间绘制垂直行。
autoResizeMode
protected int autoResizeMode
确定表是否自动调整列的宽度以占用表的整个宽度,以及如何进行调整。
autoCreateColumnsFromModel
protected boolean autoCreateColumnsFromModel
如果为 true,则表对 TableModel 进行查询以构建默认列集。
preferredViewportSize
protected Dimension preferredViewportSize
Scrollable 接口使用它来确定初始的可见区域。
rowSelectionAllowed
protected boolean rowSelectionAllowed
如果行选择在此表中是允许的,则返回 true。
cellEditor
protected transient TableCellEditor cellEditor
活动单元格编辑器对象,它重写当前单元格占用的屏幕空间,并允许用户更改其内容。如果当前没有编辑该表,则为 null。
editingColumn
protected transient int editingColumn
标识所编辑的单元格的列。
editingRow
protected transient int editingRow
标识所编辑的单元格的行。
defaultRenderersByColumnClass
protected transient Hashtable defaultRenderersByColumnClass
一个由对象组成的表,它显示单元格的内容,通过在 TableModel 接口的 getColumnClass 中所声明的类建立索引。
defaultEditorsByColumnClass
protected transient Hashtable defaultEditorsByColumnClass
一个由对象组成的表,它显示并编辑单元格的内容,通过在 TableModel 接口的 getColumnClass 中所声明的类建立索引。
selectionForeground
protected Color selectionForeground
已选定单元格的前景色。
selectionBackground
protected Color selectionBackground
已选定单元格的背景色。
- 用Swing开发GUI程序(六)JTable
- 用Swing开发GUI程序(一)
- 用Swing开发GUI程序(二)JFrame和JDialog
- 用Swing开发GUI程序(三)JPanel
- 用Swing开发GUI程序(四)JList
- 用Swing开发GUI程序(五)JScrollpane
- java swing 开发 -JTable
- swing JTable学习(六)—tableModel firechange
- 用 TableModel Free 框架简化 Swing 开发——JTable
- java SWING/GUI测试程序
- Spring 开发 Swing GUI 简介
- 用Python开发GUI程序
- Swing JTable例子(如何创建一个JTable)
- (swing读书笔记)JTable简介(上)
- (swing读书笔记)JTable简介(中)
- (swing读书笔记)JTable简介(下)
- Swing基本组件使用4(JTable)
- java swing组件实现gui 日历程序
- HashMap Hashtable LinkedHashMap 和TreeMap区别
- 2017.9.13 不等式组 思考记录
- android sqlite支持的数据类型
- 职场中哪些敏感问题不能问
- CSS 选择器权重计算规则
- 用Swing开发GUI程序(六)JTable
- 匿名科创地面站v4.08
- Java8的十大新特性
- unity3d 网络延时状态下 ,平滑转弯
- 微信开发 url传参数 json 导致 ios 微信分享失败苹果手机sinature签名无效的问题
- java--利用exe4j生成.exe的可执行文件
- 关于剑指offer上“二叉搜索树与双向链表”题的理解
- 一步步教你实现完整的复杂列表布局
- 且谈软件项目建设与装修项目的关系(二)