JTable的使用问题

1.设置指定列单元格的前景色


//获取TableColumn对象
TableColumn tableColumn = jTable.getColumn("月薪");

//初始化Table的渲染器
DefaultTableCellRenderer cellRenderer = new DefaultTableCellRenderer();
//设置单元格的前景色
cellRenderer.setForeground(Color.red);

//将渲染器设置到获取到的列
tableColumn.setCellRenderer(cellRenderer);

2.设置指定单元格的背景色

//获取TableColumn对象
TableColumn departmentColumn = jTable.getColumn("部门");

//重新申明渲染器
DefaultTableCellRenderer cellRenderer2 = new DefaultTableCellRenderer();
//设置单元格的背景色
cellRenderer2.setBackground(Color.blue);

//将渲染器放入
departmentColumn.setCellRenderer(cellRenderer2);

3.设置不能拖动一列

jTable.getTableHeader().setReorderingAllowed(false);

4.设置每一列的大小不能改变

jTable.getTableHeader().setResizingAllowed(false);

5.设置每一行颜色交替

DefaultTableCellRenderer cellRenderer3 = new DefaultTableCellRenderer(){

public Component getTableCellRendererComponent(JTable arg0,Object arg1, boolean arg2, boolean arg3, int arg4, int arg5) {
// TODO Auto-generated method stub

if(arg4%2 == 0){
this.setBackground(Color.pink);
}
else {
this.setBackground(Color.white);
}

return super.getTableCellRendererComponent(arg0, arg1, arg2, arg3, arg4, arg5);
}
};

//每一格设置渲染器
for(int i=0; i<jTable.getColumnCount(); i++){
TableColumn tableColumn = jTable.getColumn(jTable.getColumnName(i));
tableColumn.setCellRenderer(cellRenderer3);
}

6.在表格中创建下拉框

JComboBox jComboBox = new JComboBox();
jComboBox.addItem("人事部");
jComboBox.addItem("经理部");
jComboBox.addItem("开发部");
jComboBox.addItem("财务部");

//获取列
TableColumn tableColumn = jTable.getColumn("部门");
//生成表格编辑器
DefaultCellEditor defaultCellEditor = new DefaultCellEditor(jComboBox);
//设置表格编辑器
tableColumn.setCellEditor(defaultCellEditor);

7.设置单元格中的对齐方式

DefaultTableCellRenderer cellRenderer3 = new DefaultTableCellRenderer();
cellRenderer3.setHorizontalAlignment(JLabel.CENTER);
for (int i = 0; i < jTable.getColumnCount(); i++) {
TableColumn tc = jTable.getColumn(jTable.getColumnName(i));
tc.setCellRenderer(cellRenderer3);
}

8.在对数据进行添加时,可以使用DefaultTableModel类的对象的addRow方法直接添加到TalbeModel中,当然,对应数据库也要进行操作。

注意!在为JTable指定样式的时候,后面定义的会覆盖前面定的(例如:5对其他样式就有覆盖作用,如果5放在后面会将前面所有的样式都覆盖掉)

posted @ 2015-11-18 15:22  曾颐楠  阅读(611)  评论(0编辑  收藏  举报