Jtable表格隔行換色
阿新 • • 發佈:2019-02-01
1 奇偶行顏色顯示不同
package cn.edu.book.util;
import java.awt.Color;
import java.awt.Component;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
public class MyUtil {
public static void makeFace(JTable table) {
try {
DefaultTableCellRenderer tcr = new DefaultTableCellRenderer() {
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
if (row % 2 == 0)
setBackground(Color.white); // 設定奇數行底色
else if (row % 2 == 1)
setBackground(new Color(206, 231, 255)); // 設定偶數行底色
return super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column);
}
};
for (int i = 0; i < table.getColumnCount(); i++) {
table.getColumn(table.getColumnName(i)).setCellRenderer(tcr);
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
在上面的程式中沒有給出JTable的資料.
因此當你使用的時候只需要在JTable中加入這樣一句話!
MyUtil.makeFace(你的JTable名);
例如:
if (jTable == null) {
jTable = new JTable(myModel);
jTable.setRowSelectionAllowed(true);//設定JTable可被選擇
jTable .setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
//設定JTable為單行選擇
jTable.getTableHeader().setBackground(new Color(206,231,255));//設定JTable表頭顏色
jTable.getTableHeader().setReorderingAllowed(false);//設定JTable每個欄位的順序不可以改變
jTable.getTableHeader().setResizingAllowed(false); //設定JTable每個表頭的大小不可以改變
MyUtil.makeFace(jTable);//設定JTable 顏色
}
2 資料居中
DefaultTableCellRenderer r = new DefaultTableCellRenderer();
r.setHorizontalAlignment(JLabel.CENTER);
table.setDefaultRenderer(Object.class, r);
table 為你JTABLE 的例項物件 你試試