在java中设置表格的背景颜色

import java.awt.BorderLayout;
import java.awt.Color;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellRenderer;

public class ExampleFrame02 extends JFrame {
	public static void main(String[] args) {
		ExampleFrame02 frame = new ExampleFrame02();
		frame.setVisible(true);
	}

	public ExampleFrame02() {

		super();
		setBounds(100, 100, 250, 150);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭表的列的自动调整功能
		final JScrollPane scrollpane = new JScrollPane();
		getContentPane().add(scrollpane, BorderLayout.CENTER);
		String[] columnNames = { "A", "B", "C", "D", "E", "F" };
		Vector columnNameV = new Vector();
		for (int column = 0; column < columnNames.length; column++) {
			columnNameV.add(columnNames[column]);
		}
		Vector tableValuesV = new Vector();
		for (int row = 1; row < 22; row++) {
			Vector rowV = new Vector();
			for (int column = 0; column < columnNames.length; column++) {

				rowV.add(columnNames[column] + row);
			}
			tableValuesV.add(rowV);
		}
		JTable table = new MTable(tableValuesV, columnNameV);
		table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
		table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
		table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
		table.setBackground(Color.YELLOW);
		table.setSelectionForeground(Color.RED);
		table.setRowHeight(50);
		scrollpane.setViewportView(table);
	}

	private class MTable extends JTable {
		public MTable(Vector rowDate, Vector columnNames) {
			super(rowDate, columnNames);

		}

		public JTableHeader getTableHeader() {
			JTableHeader tableHeader = super.getTableHeader();
			tableHeader.setResizingAllowed(false);
			DefaultTableCellRenderer hr = (DefaultTableCellRenderer) tableHeader
					.getDefaultRenderer();
			hr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);
			return tableHeader;

		}

		public TableCellRenderer getdefaultCellRenderer(Class<?> columnClass) {
			DefaultTableCellRenderer cr = (DefaultTableCellRenderer) super
					.getDefaultRenderer(columnClass);
			cr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);
			return cr;
		}

		public boolean IscelleditTable(int row, int colunmn) {
			return false;
		}
	}
}

 

posted @ 2013-05-09 16:24  渲染y1丗浮華、  阅读(1538)  评论(0编辑  收藏  举报