Mudar a cor de uma linha determinada quando uma data de uma coluna [RESOLVIDO]

2 respostas
Z

boa tarde, faz dias que estou tentando mudar de cor apenas uma linha quando na coluna tal a data naquela linha for mais antiga do que a atual.

tenho meu ColorRenderer abaixo funcionando bem...

mas não consigo fazer ela mudar de maneira nenghuma.

Alguém me da uma luz ai??

valeu

package model;

import java.awt.Color;
import java.awt.Component;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;

/**
 *
 * @author wagner
 */
public class ColorRenderer extends DefaultTableCellRenderer {

    //private NumberFormat formatter = NumberFormat.getCurrencyInstance();
package model;

import java.awt.Color;
import java.awt.Component;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;

/**
 *
 * @author wagner
 */
public class ColorRenderer extends DefaultTableCellRenderer {

    //private NumberFormat formatter = NumberFormat.getCurrencyInstance();

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value,
        boolean isSelected, boolean hasFocus, int row, int column) {
    Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

    setFont(new java.awt.Font("Calibri", 0, 11 ));
    setBorder(getBorder());

    if(!isSelected){
        if(row %2 ==0 && row != 1){
            c.setBackground(new Color(240,255,255));
            c.setForeground(new Color(0,0,0));
        }   else{
            c.setBackground(Color.WHITE);
            c.setForeground(new Color(0,0,0));
        }
    }else{
        c.setBackground(new Color(173,216,230));
        c.setForeground(new Color(255,255,255));
    }

    //formata os digitos - nao é necessario agora
//        if(value != null){
//            formatter.setMaximumFractionDigits(2);
//            setText(formatter.format(value));
//            setFont(new Font("helvetica",Font.ROMAN_BASELINE,11));
//            setHorizontalAlignment(SwingConstants.RIGHT);
//        }else{
//            setText("");
//        }

    return c;
   }
}
    @Override
    public Component getTableCellRendererComponent(JTable table, Object value,
        boolean isSelected, boolean hasFocus, int row, int column) {
    Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

    setFont(new java.awt.Font("Calibri", 0, 11 ));
    setBorder(getBorder());

    if(!isSelected){
        if(row %2 ==0 && row != 1){
            c.setBackground(new Color(240,255,255));
            c.setForeground(new Color(0,0,0));
        }   else{
            c.setBackground(Color.WHITE);
            c.setForeground(new Color(0,0,0));
        }
    }else{
        c.setBackground(new Color(173,216,230));
        c.setForeground(new Color(255,255,255));
    }

    //formata os digitos - nao é necessario agora
//        if(value != null){
//            formatter.setMaximumFractionDigits(2);
//            setText(formatter.format(value));
//            setFont(new Font("helvetica",Font.ROMAN_BASELINE,11));
//            setHorizontalAlignment(SwingConstants.RIGHT);
//        }else{
//            setText("");
//        }

    return c;
   }
}

2 Respostas

Z

tenho esse carrega dados abaixo

public void Dados() throws SQLException{
        ConnEmprestimos u = new ConnEmprestimos(null);
        ArrayList<Emprestimos> user = u.Busca();  
        if(user.isEmpty()){
            //JOptionPane.showMessageDialog(rootPane, "Não há empréstimos cadastrados","Informação",JOptionPane.INFORMATION_MESSAGE);
        }else{
            boolean[] edicao = {false, false, false, false, false, false, false, false,false};
            String[] colunas = new String []{"Nome","CPF","Fone","Endereço","Livro","Data Retirada","Data Entrega","Situação","Código"};
            ModelEmprestimos mod = new model.ModelEmprestimos(user, colunas, edicao) {
                Class[] types = new Class [] {
                    java.lang.String.class,//nome
                    java.lang.String.class,//login
                    java.lang.String.class,//senha
                    java.lang.String.class,//senha
                    java.lang.String.class,//senha
                    java.sql.Date.class,//senha
                    java.sql.Date.class,
                    java.lang.String.class,
                    java.lang.String.class,
                    java.lang.Integer.class};//nivel
                @Override
                public Class<?> getColumnClass(int column) {return types[column];}
            };     
            
            sorter = new TableRowSorter<TableModel>(mod);
            TableEmprestimos.setModel(mod);
            TableEmprestimos.setDefaultRenderer(Object.class, new ColorRenderer());
            TableEmprestimos.setRowSorter(sorter);
            TableEmprestimos.setRowHeight(25);
            TableEmprestimos.getColumnModel().getColumn(0).setMaxWidth(280);
            TableEmprestimos.getColumnModel().getColumn(0).setMinWidth(280);
//            TableEmprestimos.getColumnModel().getColumn(1).setMaxWidth(100);
//            TableEmprestimos.getColumnModel().getColumn(1).setMinWidth(100);
//            TableEmprestimos.getColumnModel().getColumn(2).setMaxWidth(100);
//            TableEmprestimos.getColumnModel().getColumn(2).setMinWidth(100);
//            TableEmprestimos.getColumnModel().getColumn(3).setMaxWidth(150);
//            TableEmprestimos.getColumnModel().getColumn(3).setMinWidth(150);
            TableEmprestimos.getColumnModel().getColumn(4).setMaxWidth(300);
            TableEmprestimos.getColumnModel().getColumn(4).setMinWidth(300);
//            TableEmprestimos.getColumnModel().getColumn(5).setMaxWidth(100);
//            TableEmprestimos.getColumnModel().getColumn(5).setMinWidth(100);
//            TableEmprestimos.getColumnModel().getColumn(6).setMaxWidth(100);
//            TableEmprestimos.getColumnModel().getColumn(6).setMinWidth(100);
//            TableEmprestimos.getColumnModel().getColumn(7).setMaxWidth(90);
//            TableEmprestimos.getColumnModel().getColumn(7).setMinWidth(90);
//            TableEmprestimos.getColumnModel().getColumn(8).setMaxWidth(95);
//            TableEmprestimos.getColumnModel().getColumn(8).setMinWidth(95);
            for(final Emprestimos e : user){
                try {
                    SimpleDateFormat DataCerta = new SimpleDateFormat("yyyy-MM-dd");
                    data = DataCerta.format(new Date());
                    dat = new java.sql.Date(((java.util.Date) DataCerta.parse(data)).getTime());
                     
                    if (e.getDataEntrega().before(dat) && e.getIdSituacao() != 2) { 
                        System.out.println("Data entrega: "+e.getDataEntrega());
                        System.out.println("Date Atual : "+dat);
                        System.out.println(e.getIdSituacao());
                        if(e.getIdSituacao() == 4){
                               // QUANDO ENTRAR AQUI GOSTARIA Q A LINHA MUDASSE DE COR, PARA LARANJA OU VERMELHA.!!!!!!!!!!
                        }else{
                            JOptionPane.showMessageDialog(rootPane, "O livro:  ( "+e.getNomeLivro()+" ) não foi entregue na data marcada. \n Seu status será mudado para (ATRASADO)");
                        
                            // cria a conexão  
                            ConnEmprestimos a = new ConnEmprestimos(null);  
                            a.Connect();  

                            // edita 
                            a.Entrega(4,e.getIdEmprestimo());  // 4 = atrasado

                            //fecha  
                            a.Fecha();
                            
                        }
                    } else {  
                        //
                    }  
                } catch (ParseException ex) {
                    Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
                }
            
            }

    }

Alguem da uma ajudinha????????????????????

Z

bahh… alguém tem alguma dica? qlqr dica ajuda!

valeu

Criado 13 de janeiro de 2013
Ultima resposta 18 de jan. de 2013
Respostas 2
Participantes 1