Nao consigo colorir Jtabel

3 respostas
batista.gerson

Bom dia a todos alguem poderia me ajudar
to tentando colorir a minha jtable ms nao to conseguindo
pegui uns exemplos aqui mesmo do forum
ms nao aconteceu o q eu esperava
e o seguinte depois de dez minutos a linha tem q ficar vermelha ms isso nao ta acontecendo.

public void montarJTable() throws ClassNotFoundException, SQLException, Exception {
        // TODO add your handling code here:
        final String[] colunas = {"USUÁRIO", "ANDAR", "GUICHÊ", "ATENDIDA", "ATENDENDO", "CANCELADA", "SENHA", "TIPO"};
        int i = 0;
        listSupervisor = supervisor.monitoraAtendimento(dt);
        conteudo = new String[listSupervisor.size()][8];
        Iterator it = listSupervisor.iterator();
        verificaOcupado(i);
        while (it.hasNext()) {
            i++;
            verificaOcupado(i);
            supervisor = (Supervisor) it.next();
            conteudo[this.listSupervisor.indexOf(supervisor)][0] = supervisor.getNomeUsuario().toUpperCase().trim();
            conteudo[this.listSupervisor.indexOf(supervisor)][1] = supervisor.getLocalizacao().trim();
            conteudo[this.listSupervisor.indexOf(supervisor)][2] = supervisor.getNomeGuiche().trim();
            conteudo[this.listSupervisor.indexOf(supervisor)][3] = String.valueOf(supervisor.getQntAtendidas()).trim();
            conteudo[this.listSupervisor.indexOf(supervisor)][4] =  retornarHorasDeDiferenca(supervisor.getHrInicAtendimento()).trim(); // verifico os minutos
            conteudo[this.listSupervisor.indexOf(supervisor)][5] = String.valueOf(supervisor.getQntCanceladas()).trim();
            conteudo[this.listSupervisor.indexOf(supervisor)][6] = String.valueOf(supervisor.getUltSenha()).trim();
            if (supervisor.getTipoSenha().equals("N")) {
                conteudo[this.listSupervisor.indexOf(supervisor)][7] = "Normal";
            } else {
                conteudo[this.listSupervisor.indexOf(supervisor)][7] = "Preferencial";
            }
        }

        //constrói o dataModel
        dataModel = new AbstractTableModel() {

            public int getColumnCount() {
                return colunas.length;
            }

            public int getRowCount() {
                return conteudo.length;
            }

            public Object getValueAt(int row, int col) {
                return conteudo[row][col];
            }

            @Override
            public String getColumnName(int column) {
                return colunas[column];
            }

            @Override
            public Class getColumnClass(int col) {
                return getValueAt(0, col).getClass();
            }

            // @Override
            public void setValueAt(String aValue, int row, int column) {
                conteudo[row][column] = aValue;
            }
        };
        // Aqui eu tento colorir a tabela mas nao acontece nada 
        TableCellRenderer tcr = (TableCellRenderer) new Colorir().getTableCellRendererComponent(jTable1,          retornarHorasDeDiferenca(supervisor.getHrInicAtendimento()).trim(), rootPaneCheckingEnabled,  rootPaneCheckingEnabled, i, i); 
        TableColumn column = this.jTable1.getColumnModel().getColumn(i);
        column.setCellRenderer(tcr);
        
        this.jTable1.setModel(dataModel);
        ListSelectionModel listMod = this.jTable1.getSelectionModel();
        listMod.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        this.jTable1.getColumnModel().getColumn(0).setPreferredWidth(80);
        this.jTable1.getColumnModel().getColumn(1).setPreferredWidth(20);
        this.jTable1.getColumnModel().getColumn(2).setPreferredWidth(10);
        this.jTable1.getColumnModel().getColumn(3).setPreferredWidth(10);
        this.jTable1.getColumnModel().getColumn(4).setPreferredWidth(30);
        this.jTable1.getColumnModel().getColumn(5).setPreferredWidth(7);
        this.jTable1.getColumnModel().getColumn(6).setPreferredWidth(7);
        this.jTable1.getColumnModel().getColumn(6).setPreferredWidth(17);
}
Classe getTableCellRendererComponent
class Colorir extends DefaultTableCellRenderer {

        public Component getTableCellRendererComponent(JTable table, String tempo, boolean isSelected,
                boolean hasFocus, int row, int column) {
            Component cell = super.getTableCellRendererComponent(table, tempo, isSelected, hasFocus, row, column);
            int hr = Integer.valueOf(tempo.substring(0, 1));
            if (hr > 0) {
                cell.setBackground(Color.RED);
            }
            int minuto = Integer.valueOf(tempo.substring(2, 4));
            if (minuto >= 10) {
                cell.setBackground(Color.RED);
            }
            return cell;
        }
    }

alguem sabe m dizer pq??

3 Respostas

B

Onde está o timer que faz esse controle de alteração da cor?

batista.gerson

aki retorna o tempo em String ja

retornarHorasDeDiferenca(supervisor.getHrInicAtendimento()).trim();
batista.gerson

Alguem???

Criado 16 de dezembro de 2009
Ultima resposta 16 de dez. de 2009
Respostas 3
Participantes 2