Atualizando JPanel

9 respostas
king_of_gods

Bom galera, to fazendo um chat. E na tela aonde aparece as mensagens estou usando um jpanel.

private void jbEnviarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: JLabel jlNick = new JLabel(); jlNick.setText(nick + ":"); jlNick.setForeground(Color.RED); this.jpChat.add(jlNick); this.jpChat.add(new JLabel(this.jtaEnviar.getText())); this.jtaEnviar.setText(""); }

A partir do evento do botão enviar gostaria que na tela mostrasse o meu nick (jlabel) em vermelho e o texto da mensagem. Só que qdo executo o evento a tela não mostra. Já tentei repaint, e outros metódos. Gostaria de uma ajuda. Grato!

9 Respostas

ViniGodoy

Qual gerenciador de layout vc está usando?

Pq vc não usa um JTextPane ao invés de ficar adicionando diversos componentes ao Panel?

Leia o Javadoc do JPanel. Lá diz que você tem que chamar o método revalidate() (se eu não me engano) sempre que adiciona um componente a um painel já desenhado.

M

Tentou fazer updateUI() no label ou no panel também??

king_of_gods

ViniGodoy:
Qual gerenciador de layout vc está usando?

Pq vc não usa um JTextPane ao invés de ficar adicionando diversos componentes ao Panel?

Leia o Javadoc do JPanel. Lá diz que você tem que chamar o método revalidate() (se eu não me engano) sempre que adiciona um componente a um painel já desenhado.

o revalidate não funcionou. vou tentar o JtextPane, mas ele me fornece a opção de incluir label?

king_of_gods

to usando o netbeans.

ViniGodoy

Ok… mas e que layout manager?

GridBagLayout? FlowLayout? CardLayout? BoxLayout? SpringLayout?

king_of_gods

ViniGodoy:
Qual gerenciador de layout vc está usando?

Pq vc não usa um JTextPane ao invés de ficar adicionando diversos componentes ao Panel?

Leia o Javadoc do JPanel. Lá diz que você tem que chamar o método revalidate() (se eu não me engano) sempre que adiciona um componente a um painel já desenhado.

Bom troquei para o jtextpane, o problema é:

Eu to fazendo um chat. Gostaria de que o Text pane fosse salvo todas as informações anteriores.

E que os nicks aparecessem de uma cor determinada. E só consigo fazer isso com o jlabel. Fico no aguardo.

king_of_gods

Ok… mas e que layout manager?

GridBagLayout? FlowLayout? CardLayout? BoxLayout? SpringLayout?

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

king_of_gods

esse jpanel ta dentro de um scrool panel.

dm_thiago

Concordo com o ViniGodoy, acho que um JTextPane seria melhor no seu caso.

Mas respondendo a sua duvida, se o panel.validade() não está funcionando, tente o panel.updateUI();

[]´s

Criado 2 de abril de 2008
Ultima resposta 2 de abr. de 2008
Respostas 9
Participantes 4