Java中JTbale使用2—设置某一列的字的颜色

来源:互联网 发布:少女前线 mac 10 旋风 编辑:程序博客网 时间:2024/05/29 02:16
package jtables;

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();     
    }     
}
0 0