您的位置:首页 > 其它

一个TableCellRenderer的例子

2011-08-23 23:36 351 查看
import javax.swing.*;

import javax.swing.table.*;

import java.awt.*;

import javax.swing.table.TableCellRenderer;

class EvenOddRenderer implements TableCellRenderer {

public static final DefaultTableCellRenderer DEFAULT_RENDER = new DefaultTableCellRenderer();

public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column){

Component renderer = DEFAULT_RENDER.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);

Color foreground,background;

if(isSelected){

foreground = Color.yellow;

background = Color.green;

}else{

if(row%2==0){

foreground = Color.blue;

background = Color.white;

}else{

foreground = Color.white;

background = Color.blue;

}

}

renderer.setForeground(foreground);

renderer.setBackground(background);

return renderer;

}

}

public class ResizeTable{

public static void main(String[] args){

final Object rowData[][] = {

{"1","one","Ⅰ"},

{"2","two","Ⅱ"},

{"3","three","Ⅲ"}

};

final String[] columnNames = {"#","English","Roman"};

final JTable table = new JTable(rowData,columnNames);

JScrollPane scrollPane = new JScrollPane(table);

table.setDefaultRenderer(Object.class,new EvenOddRenderer());

JFrame frame = new JFrame("Resize Table");

frame.getContentPane().add(scrollPane);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(300,150);

frame.setVisible(true);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: