JTable中如何实现斑马线,即隔行显示不同的颜色。

解决方案 »

  1.   

    TableCellRenderer中有个getTableCellRendererComponent方法,在这个方法中添加代码:
    if (!isSelected) {
        if(row%2==0){
            设置背景色-〉灰;
        }
        else{
            设置背景色-〉白;
        }
    }
      

  2.   

    public static void setColor(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();
            }
        }