1. 程式人生 > >Jtable表格隔行換色

Jtable表格隔行換色

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 的例項物件 你試試