就自己实现CellRenderer好了.
getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) 
TableCellRenderer中必须实现上面这个方法, 里面的int row就是行号.
你判断出奇偶后自己设一个背景色就可以了.

解决方案 »

  1.   

    惭愧, 我用 DefaultTableCellRenderer 实现 但不成工,用鼠标选择表格时发生混乱 可能实现方式就不对吧
      

  2.   

    我用biti_9512207(波波斯基)的方法实现了,
    但是我用JLabel时无法改变背景色
    用JTextField又有讨厌的黑框,有什么办法去掉呢?
    或是应该用别的控件???
      

  3.   

    完成了 :)
    起先我一直用 DefaultTableCellRenderer 里的 setValue(Object value)
    谢谢 biti_9512207(波波斯基)!=================================================================
    /**
     *  [RoundColorTable.java]   间隔色的 JTable
     *
     *
     * 创建日期:(2003-8-25)
     * @author:ONE_Fox
     */
     
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.table.*;
    public class RoundColorTable extends JFrame {
        private String[] colname = {"第1列","第2列","第3列","第4列","第5列"}; //表头信息
        private String[][] data = new String[10][5]; //表内容
        int[] selected = null; //选择记录
        
        //界面组件----------------------//
        private JScrollPane scroPanel = new JScrollPane(); //中底层滚动面板
        private DefaultTableModel model; //列表默认TableModel
        private JTable table;
        /**
     * 构造方法 SelectionDemo()
     * @param data String[][]
     * @param colname String[]
     */    
        public RoundColorTable() {
            makeFace();
            addListener();
            showFace();
        }/**
     * 方法: 界面构建 makeFace()
     */
        private void makeFace() {
            
            //表内容数组 data[][] 赋值------------//
            for(int i = 0; i < 10; i++) {
                for(int j = 0; j < 5; j++) {
                    data[i][j] = "( " + (j+1) + ", " + (i+1) + " )";
                }
            }
            
            table = new JTable(model = new DefaultTableModel(data,colname));
            
            //设置列表现器------------------------//
            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 = 1; i <= 5; i++) {
                table.getColumn("第"+i+"列").setCellRenderer(tcr);
            }
                    
                    
            scroPanel.getViewport().setBackground(Color.white);
            scroPanel.getViewport().add(table);
            
            //总体界面布局------------------------//
            getContentPane().add(scroPanel, BorderLayout.CENTER);
        }/**
     * 方法: 界面显示 showFace()
     */
        private void showFace() {
            setTitle("间隔色的 JTable");
            setSize(500,400);
            Toolkit tmpTK = Toolkit.getDefaultToolkit();
            Dimension dime = tmpTK.getScreenSize();
            Dimension frameSize = this.getPreferredSize();
            
            setLocation(dime.width/2 - (frameSize.width/2),
                        dime.height/2 - (frameSize.height/2));
            setResizable(false);
            show();
        }/**
     * 方法: 添加事件监听 addListener()
     */   
        private void addListener() {
            this.addWindowListener(new WindowAdapter(){  //添加窗口关闭事件
                public void windowClosing(WindowEvent e){
                    new JFrame().setVisible(false);
                    dispose();
                }
            });
        }
            
            
    /**
     * 程序入口 main()
     */
        public static void main(String args[]) {
            //获取设置系统风格-------------------//
            try {
                String laf = UIManager.getSystemLookAndFeelClassName();
                UIManager.setLookAndFeel(laf);
            } catch (Exception e) {}
            
            new RoundColorTable();
        }
    }
      

  4.   

    谢谢三位!
    谢谢biti_9512207(波波斯基)的指点!
    谢谢onefox(一品狐)的不倦帮助!
    谢谢sun2927(小健)的"up"!结贴!!!!!!!!!!!!!!!!!!!!!
      

  5.   

    谢谢biti_9512207(波波斯基)的指点!
    谢谢onefox(一品狐)的不倦帮助!
    谢谢sun2927(小健)的"up"!结帖!!!!!!!!!!!