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
[code]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;
}
}[/code]
chamada no meu menu
tabela.getColumnModel().getColumn(0).setCellRenderer(new MyRenderer());
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.
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?
Essa parte aqui
[code]
…
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);
… [/code]
Lembrando que onde eu coloco meus ifs e setBackground vc coloca sua lógica.