我想设置表格里面的某一行颜色;并且让数据库记载下来,等刷新表格的时候,就知道这行是什么颜色了;例如
我从数据库读取了数据,读某行的值进行判断,如果他的值为“red”,那这行就显示红色,“BLUE”的话 就显示蓝色;其余的还是默认的颜色;之前在百度,问问里问过了,都没什么人懂得怎么做 所以希望CSDN的JAVA高手帮忙解决下。这问题困扰了好久哦;之前看过的文章都是奇偶数行可以;
http://zhidao.baidu.com/question/250214717.html 这个是我之前在百度问的;

解决方案 »

  1.   

    package com.hr.fortest;
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Component;
    import java.util.List;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.RowSorter;
    import javax.swing.WindowConstants;
    import javax.swing.table.DefaultTableCellRenderer;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.table.TableCellRenderer;
    import javax.swing.table.TableModel;
    import javax.swing.table.TableRowSorter;import org.hibernate.Query;
    import org.hibernate.Session;
    import com.hr.bean.Department;
    import com.hr.hibernate.HibernateSessionFactory;public class JTableDemo extends JTable {

    private Color selectionColor = new Color(207,228,249);//行选择颜色
    private int rowHeight = 30;//行高度

    public JTableDemo(TableModel tableModel){
    super(tableModel);
    this.setGridColor(gridColor);
    this.setRowHeight(rowHeight);
    }

    public TableCellRenderer getCellRenderer(int row, int column) {
    return new MyCellRenderer();
    }

    class MyCellRenderer extends DefaultTableCellRenderer{

            public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column){ 
             Component cell = super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);   
             this.setColor(cell, table, isSelected, hasFocus, row, column);
                return cell;
            }
            /*
             * 设置颜色
             */
            private void setColor(Component component,JTable table,boolean isSelected,boolean hasFocus,int row,int column){
         if(isSelected){
         component.setBackground(selectionColor);
         setBorder(null);//去掉边
         }else{
         if(row%2 == 0){
         component.setBackground(Color.red);   
         }else{
         component.setBackground(Color.white);
        
         }
        
         /* if(table.getValueAt(row, column).toString()=="red")
         {
         component.setBackground(evenRowColor);   
         }else{
         component.setBackground(oddRowColor);
         }*/
         }
            }
    }
    public static void main(String[] args){
    JFrame frame = new JFrame("java Swing Jtable Demo");
    //初始化测试数据

    String[] head = { "ID", "部门代码", "部门名称", "部门简介", "操作员" };  
        DefaultTableModel mm = new DefaultTableModel(head, 0);
        RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(mm);
    Session s = null;
    try {
    String hql = "from Department";
    s = HibernateSessionFactory.getSession();
    Query query = s.createQuery(hql);
    List<Department> list = query.list();
    for (Department department : list) {
    String id = Integer.toString(department.getId());
    String code = department.getCode();
    String name = department.getName();
    String introduction = department.getIntroduction();
    String adduser = department.getAdduser();
    String[] str_row = { id, code, name, introduction, adduser }; // 将一行的数据存在str_row
    // 字符串数组里
    mm.addRow(str_row);
    } } catch (Exception ex) {
    ex.printStackTrace();
    } finally {
    if (s != null) {
    s.close();
    }
    }
        JTableDemo table = new JTableDemo(mm);
        frame.getContentPane().add(new JScrollPane(table),BorderLayout.CENTER);
        
        //设置JFrame属性
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    frame.setSize(640,480);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
    }
    }这是我的代码!