Ae galera gostaria de entender como eu mudo o modelo da minha JTable no netbeans…preciso mudar a fonte, cor, etc…de uma celula q eu clicar…ja intendi q eu preciso mudar o modelo de minha JTable mas oq eu nao intendo eh como fazer isso no nebeans pois ele cria a JTable e trava o codigo
Olá furacao123, pelo que eu saiba o netbeans não dá suporte para manipulação de renderers. Você terá que fazer as implementações na codificação - O que não é difícil. Abraço.
furacao123
eu testei todos os exemplos desse link da sun…consegui fazer funcionar…eu pensei em fazer na unha mesmo usando o netbeans, mas me explica uma coisa q ainda to confuso…eu to acostumado em tarbalhar com tabelas simples no DefaultTableModel mesmo…e pelo q vejo esses exemplos da sun eu vou ter q fazer uma classe com o modelo da minha tabela pra depois usala??
M
miguel.satriani
Eu sempre utilizo assim… Crio uma classe “tabela” e dentro dela eu crio a classe “Modelo” e as classes de renders… mas pode se fazer de varias formas…
furacao123
teria como me mostrar um exemplo modelo e renders soh pra mim intender melhor??
é q eu sempre usei o Default pra trabalhar com banco, etc.
Obrigado.
geidivan
Segue minha classe de formato de célula. Nela eu só centralizo o texto, defino a fonte e o texto da célula quando passo o mouse em cima. Só os 3 primeiros métodos que eu editei, o resto é padrão do implements da classe.
packageservices;importjava.awt.Color;importjava.awt.Component;importjava.awt.Font;importjavax.swing.JLabel;importjavax.swing.JTable;importjavax.swing.table.DefaultTableCellRenderer;importjavax.swing.table.TableCellRenderer;publicclassFormatoCelulaextendsDefaultTableCellRendererimplementsTableCellRenderer{publicFormatoCelula(){super();}@OverridepublicvoidsetHorizontalAlignment(intalignment){super.setHorizontalAlignment(alignment);}@OverridepublicvoidsetToolTipText(Stringtext){super.setToolTipText(text);}@OverridepublicvoidsetFont(Fontfonte){super.setFont(fonte);}@OverridepublicComponentgetTableCellRendererComponent(JTabletable,Objectvalue,booleanisSelected,booleanhasFocus,introw,intcolumn){Componentrenderer=super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);returnrenderer;}@Overridepublicvoidvalidate(){}@Overridepublicvoidrevalidate(){}@OverrideprotectedvoidfirePropertyChange(StringpropertyName,ObjectoldValue,ObjectnewValue){}@OverridepublicvoidfirePropertyChange(StringpropertyName,booleanoldValue,booleannewValue){}}// ---------------- Configurando um formato a partir do meu formato definidoFormatoCelulac=newFormatoCelula();// Defino a fonte e o alinhamentoc.setFont(newFont("Arial",Font.PLAIN,12));c.setHorizontalAlignment(SwingConstants.LEFT);// Defino o texto das celulas da coluna 1c.setToolTipText("Nome do usuário cadastrado.");tabela.getColumnModel().getColumn(1).setCellRenderer(c);// Defino o texto das celulas da coluna 2c.setToolTipText("Login do usuário cadastrado.");tabela.getColumnModel().getColumn(2).setCellRenderer(c);
Lembre-se de fazer isso no pós-inicialização da sua tabela, senão a alteração não aparecerá. Para isso, vá em propriedades da sua tabela, na aba código, edite a propriedade “Código de pós-inicialização”.
Espero ter ajudado.
furacao123
geidivan:
Lembre-se de fazer isso no pós-inicialização da sua tabela, senão a alteração não aparecerá. Para isso, vá em propriedades da sua tabela, na aba código, edite a propriedade “Código de pós-inicialização”.
Espero ter ajudado.
Não intendi essa parte oq eu tenho q editar no pós inicialização?
ele esta em branco
geidivan
Exato. Está em branco, é aí que você vai inserir essa configuração do formato, a segunda parte do código que te passei.
furacao123
eu adicionei mas nao mostrou atualização nehuma
adicionei uma JTable pelo visual do netbeans mesmo e no codigo de pos inicializacao coloquei a 2 parte do codigo