【作者:孟祥月 博客:http://blog.csdn.net/mengxiangyue】
在上一个程序的基础上,有添加了一些代码,用来设置表格中某一列字的颜色。
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.table.TableModel;
public class Table2 extends JFrame
{
JTable table;
JScrollPane pane;
TableModel model;
//数据
Object[][] data = {{"张三","男",3},
{"李四","男",4},
{"小红","女",5}};
//列名
Object[] clomnName = {"姓名","性别","年龄"};
Table2()
{
super("表格测试程序");
init();
}
private void init()
{
//初始化TableModel,使用数据data,列名clomnName
model = new DefaultTableModel(data, clomnName)
{//设置表格中的数据不可以编辑
public boolean isCellEditable(int r,int c)
{
return false;
}
};
//使用上面的model作为参数初始化JTabel
table = new JTable(model);
//初始化JScrollPane
pane = new JScrollPane();
//将table添加到JScrollPane上 这里使用下面的第一种方法不能添加
//使用第一个先获得JViewPort对象,然后再添加
// pane.add(table);
//实现字体颜色的代码
//获得某一列的tableColumn,tableColumn是一列的管理器
TableColumn tableColumn = table.getColumn("姓名");
//初始化table的渲染器
DefaultTableCellRenderer cellRanderer = new DefaultTableCellRenderer();
//设置前景色也就是字体颜色
cellRanderer.setForeground(Color.RED);
//将上面的渲染器对象放到tableColumn中
tableColumn.setCellRenderer(cellRanderer);
pane.getViewport().add(table);
this.getContentPane().add(pane);
setSize(400,300);//设置Frame的大小
setResizable(false);//设置窗口不可以调整大小
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出时关闭窗口
setVisible(true);//设置窗口显示出来
}
public static void main(String[] args)
{
new Table2();
}
}
上面的代码标识出了设置字的颜色的代码段。