在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;
}
}
}