Swing颇受欢迎的JTable类为显示大块数据提供了一种简单的机制。JTable有很多东西是用于数据的生成和编辑,其中的很多东西还可以自定义,从而更进一步增强其功能。本文会引导你一步步地进入JTable的世界。
Listing A包含了一个简单示例的代码,这个示例会说明常用JTable的行为。用户能够更改JTable的布局、拖放它的栏,或者通过拖动标题的分隔线来改变其大小。
这些列被保存在一个String数组里:
String[] columnNames = {"Product","Number of Boxes","Price"};
数据被初始化并保存在一个二维的对象数组里:
Object[][] data = { {"Apples", new Integer(5),"5.00"}, {"Oranges", new Integer(3),"6.00"}, {"Pears", new Integer(2),"4.00"}, {"Grapes", new Integer(3),"2.00"}, }; |
JTable是使用data和columnNames构成的:
JTable table = new JTable(data, columnNames);
查看JTable
JTable的高度和宽度按照下面的方法来设定:
table.setPreferredScrollableViewportSize(new Dimension(300, 80));
如果JTable的一个列或者JTable窗口自身的大小被重新确定,那么其他列会被相应的缩小或者放大,以适应新的窗口。使用setAutoResizeMode()方法就能够控制这种行为:
table.setAutoResizeMode(int mode);
mode整数字段可能的值有:
AUTO_RESIZE_OFF
AUTO_RESIZE_NEXT_COLUMN
AUTO_RESIZE_SUBSEQUENT_COLUMNS
AUTO_RESIZE_LAST_COLUMN
AUTO_RESIZE_ALL_COLUMNS
表格的缺省值
单元格内方格坐标线的缺省颜色是Color.gray。要更改这些方格坐标线的颜色,就要用到:
table.setGridColor(Color.black);
你可以用下面的方法来改变行的高度:
table.setRowHeight(intpixelHeight);
各个单元格的高度将等于行的高度减去行间的距离。
在缺省情况下,内容的前景颜色和背景颜色的选择都是由Swing的所见即所得的实现来确定的。你可以使用下面的方法来更改选择的颜色:
table.setSelectionBackground(Color.black); table.setSelectionForeground(Color.white);
你也可以隐藏单元格的方格坐标线,就像下面这样:
table.setShowHorizontalLines(false);
table.setShowVerticalLines(false);