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: