JLabel no JTable

Alguém sabe como faço pra adicionar?
Tentei jTable.add(jLabel); mas num apareceu… :? no jFrame funciona normal… :roll:

Vc terá que fazer um renderer para poder adicionar esse tipo de componente no seu JTable:
http://www.guj.com.br/java.tutorial.artigo.36.1.guj

[quote=von.juliano]Vc terá que fazer um renderer para poder adicionar esse tipo de componente no seu JTable:
http://www.guj.com.br/java.tutorial.artigo.36.1.guj[/quote]

Cara, eu tentei o primeiro exemplo, o mais simples, dessa pagina, e não consigo pintar a célula de jeito nenhum…

Meu código principal é esse:


package pkgJTable;

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.*;

public class Teste {
	
	public static JFrame jFrame;
	public static JTable jTable;

	public static void main(String[] args) {
		
		System.out.println("Inicio");
		
		jFrame = new JFrame();
		jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jFrame.setSize(500, 200);	
		jTable = new JTable(4,4);
		jFrame.add(jTable);
		jFrame.setVisible(true);
		
		jTable.addKeyListener( new KeyListener(){
			public void keyTyped(KeyEvent e){
			}
			

			public void keyPressed(KeyEvent e) {
				int key = e.getKeyCode();
				//Se tecla pressionada for "1"
				if( key == 97) {
					desenha();
				}
			}

			public void keyReleased(KeyEvent e) {
			} 			
		}
		);
		
		System.out.println("Fim");	
		
	}
	
	public static void desenha(){
		//desenho
	}
	

Agora como q eu faço, no caso desse exemplo, pra pintar a célula?
Eu criaei aquela classe lá chamada ColorRenderer, tentei até criar a minha MyJTable e sobrescrever o renderer, mas acho q fiz mó salada…

E eu precisava muito fazer isso… Se puder ajudar…

Cara, nã entendi direito o que vc quer fazer. Vou colocar um exemplo de como pintar as linhas da tabela, ok?

import java.awt.Color;
import java.awt.Component;

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

/*
 * Extender DefaultTableCellRenderer lhe permite ter controle sobre a
 * configuração de cada célula. Você pode colocar a cor da fonte de cada
 * coluna de uma cor, fazer um grid zebrado (o que está sendo feito aqui),
 * enfim, serve para configurar cada célula.
 */

public class CellRenderer extends DefaultTableCellRenderer {

	public CellRenderer() {
		super();
	}

	public Component getTableCellRendererComponent(JTable table, Object value,
			boolean isSelected, boolean hasFocus, int row, int column) {
		if ((row % 2) == 0)
			super.setBackground(Color.WHITE);
		else
			super.setBackground(Color.LIGHT_GRAY);

		return super.getTableCellRendererComponent(table, value, isSelected,
				hasFocus, row, column);
	}
}

Agora, o que vc tem que fazer no seu programa é colocar a seguinte linha:

jtable.setDefaultRenderer(Object.class, new CellRenderer());

Tá certo? Não sei se é bem isso, se não for, é só postar aí! :thumbup:

Obrigado a todos, sucesso:
http://www.guj.com.br/posts/list/0/55314.java#292964