Problema com objeto do cellRenderer

2 respostas
rodolfo_b_g

estou com o seguinte problema estou usando o cellRenderer para colcar imagem na minha jtable de acordo com oq está escrito na célula, só que quando o objeto está em branco ele da erro...alguem sabe me dizer pq?? tentei compara com null e com "" mais da erro do mesmo jeito....

package tabuleiro;

import java.awt.Color;   
import java.awt.Component;   
import java.text.DateFormat;   
import java.text.SimpleDateFormat;   
import java.util.*;   
import javax.swing.ImageIcon;
import javax.swing.JLabel;   
import javax.swing.JTable;   
import javax.swing.table.*;   
  
  
  
public class CellRenderer extends DefaultTableCellRenderer{   
       
    /** Creates a new instance of TarefasCellRenderer */  
    public CellRenderer() {   
        super();   
    }       
       
    public Component getTableCellRendererComponent(JTable table,   
            Object value, boolean isSelected, boolean hasFocus, int row, int column){   
                 
        JLabel label = (JLabel)super.getTableCellRendererComponent(table, value, isSelected, hasFocus,   
                row, column);           
       Object vazio=null;
        if(!(value.equals(vazio))){
                if(value.toString().equals("Robo")){
                    ImageIcon icon = new ImageIcon("E:/2° SEMESTRE/gato.gif");
                    setText((String)value);
                    label.setIcon(icon);
                } else{
                    if(value.toString().equals("ATAQUE")){
                        ImageIcon icon = new ImageIcon("E:/2° SEMESTRE/cachorro.gif");
                        setText((String)value);
                        label.setIcon(icon);
                    } else {
                        if(value.toString().equals("DEFESA")){
                            ImageIcon icon = new ImageIcon("E:/2° SEMESTRE/rato.gif");
                            setText((String)value);
                            label.setIcon(icon);
                        } else {
                            if(value.toString().equals("FRUTA")){
                                ImageIcon icon = new ImageIcon("E:/2° SEMESTRE/peixe.jpg");
                                setText((String)value);
                                label.setIcon(icon);
                            }
                        }
                    }
                }
        }
            
        return label;         
    }       
}

2 Respostas

T

O “Erro” deve ser um NullPointerException, não?

Troque isto:

if(!(value.equals(vazio))){

por isto:

if (value != null) {

Mais claro e não dá NullPointerException.
(Dica: quando uma variável contém null, você não pode invocar nenhum método - mesmo equals - senão dá NullPointerException.
A única coisa que se pode fazer com uma variável que pode conter null é testá-la contra null, usando “==” ou “!=”.
Isso é diferente do C++, onde em métodos não-virtuais é possível checar se “this” é null.)

rodolfo_b_g

Deu certo, muito obrigado…ainda aprendi amis algumas coisas sobre java…abraços t+

Criado 20 de setembro de 2007
Ultima resposta 21 de set. de 2007
Respostas 2
Participantes 2