其中,TableCellRenderer 用于设置单元格在表格中的展示效果,而 TableCellEditor 则用于设置单元格在被编辑时的效果。这两个接口都有一个方法 getTableCellRendererComponent() 或 getTableCellEditorComponent(),可以通过这些方法设置单元格的样式、字体、颜色等属性。
具体实现时,需要自定义一个类,实现 TableCellRenderer 或 TableCellEditor 接口,并重写其方法来进行单元格样式的设置。然后将该类对象赋给要设置的表格单元格即可。例如:
class MyCellRenderer
implements TableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
Component c = DefaultTableCellRenderer.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column)// 调用默认渲染器
c.setBackground(Color.YELLOW)// 设置背景色为黄色
return c
}
}
// 使用 MyCellRenderer 对象对表格第二列进行单元格样式设置
table.getColumnModel().getColumn(1).setCellRenderer(new MyCellRenderer())
上述代码中,自定义了一个 MyCellRenderer 类,并实现了 TableCellRenderer 接口中的 getTableCellRendererComponent() 方法来设置单元格样式。最后,使用 table.getColumnModel().getColumn(columnIndex).setCellRenderer(renderer) 来将 MyCellRenderer 对象应用到相应的表格列中。
1.在项目中创建窗体类ArrayCreateTable。在窗体中添加一个滚动面板。
2.编写getTable()方法来创建表格,在该方法中声明字符串数组columns作为表格的列名,再声明int类型的数组来定义每个表格列的宽度。然后创建表格的数据模型并遍历所有表格列对象,根据int类型数组的索引来设置表格列的宽度。
代码如下:
private JTable getTable() {
if (table == null) {
table = new JTable()
// 定义列名数组
String[] columns = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六",
"星期日" }
// 定义列宽数组
int[] columnWidth = { 10, 20, 30, 40, 50, 60, 70 }
// 创建表格数据模型
DefaultTableModel model = new DefaultTableModel(columns, 15)
table.setModel(model)// 设置表格数据模型
TableColumnModel columnModel = table.getColumnModel()// 获取列模型
int count = columnModel.getColumnCount()// 获取列数量
for (int i = 0i <counti++) {// 遍历列
TableColumn column = columnModel.getColumn(i)// 获取列对象
column.setPreferredWidth(columnWidth[i])// 以数组元素设置列的宽度
}
}
return table
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)