Imagem em célula de uma JTable

5 respostas
rodolfo_b_g

Estou precisando colcar uma imagem ou icone numa célula em jtable , até agora oq eu encontrei foi esse modelo mais ele colca a imagem na coluna inteira....alguem poderia me ajudar como colocar essa imagem numa célula especifica?


meu renderer

import java.awt.Component;

import javax.swing.ImageIcon;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;

public class MyRenderer extends DefaultTableCellRenderer {

  /*
   * @see TableCellRenderer#getTableCellRendererComponent(JTable, Object, boolean, boolean, int, int)
   */
  public Component getTableCellRendererComponent(JTable table, Object value,
                                                 boolean isSelected, boolean hasFocus, 
                                                 int row, int column) {
    ImageIcon icon = new ImageIcon("E:/2° SEMESTRE/peixe_icon.jpg");
    setText((String)value);
    setIcon(icon);
    return this;
  }
}

chamada no meu menu

tabela.getColumnModel().getColumn(0).setCellRenderer(new MyRenderer());

5 Respostas

Ricardo_Siqueira

Doi anos atrás abri um tópico aqui com algo parecido(eu queria trocar a cor de uma celula específica) e me sugeriram transformar a célula em label. A´te me mostraram um código q funcionou direitinho pro que eu queria. Vou procurar e postar aqui.

Ricardo_Siqueira

http://www.guj.com.br/posts/list/29803.java#169636

espero q ajude

rodolfo_b_g

nussa… bem sou novato em java e estava dando uma olhada no código mais não consigo visualizar em que local eh especificado qual linha e qual coluna colocar a label, no meu caso não estou criando a tabela estou usando o netbeans (jframe)…no exemplo que vc me passou onde eh especificado qual celula colocar a label?? ou alguem mais tem outro exemplo?

rodolfo_b_g

alguem?

Ricardo_Siqueira

Essa parte aqui

....

public class PessoasCellRenderer extends DefaultTableCellRenderer{   
       
    /** Creates a new instance of TarefasCellRenderer */   
    public PessoasCellRenderer() {   
        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);           
                   
  
        if(isSelected){   
            label.setForeground(Color.WHITE);   
            label.setBackground(Color.GRAY);   
        }else{   
            label.setForeground(Color.BLACK);   
            label.setBackground(Color.WHITE);
....

Lembrando que onde eu coloco meus ifs e setBackground vc coloca sua lógica.

Criado 18 de setembro de 2007
Ultima resposta 18 de set. de 2007
Respostas 5
Participantes 2