Estou eu aqui novamente com mais um probleminha…
Pessoal, tenho uma classe que extends JFrame e está funcionando legal. Tenho outra classe que é um chat que também já está funcionando e essa classe extends JPanel. O que preciso é chamar esse chat dentro da primeira classe que citei. Na verdade eu já fiz isso e consegui colocar, no entanto, eu não consigo redimensionar o chat dentro do panel que criei. O trecho do código que utilizei para chamar o chat foi:
JPanel panelChat = new JPanel();//Cria o JPanel que conterá o chat
panelChat.setSize(100, 100); //tamanho do JPanel que conterá o chat
panelChat.setBounds(803, 382, 205, 279); //Localização do JPanel que conterá o chat
getContentPane().add(panelChat); //Adicionando o JPanel ao Container principal da classe
panelChat.add(new ChatCliente());//Invocando instância do chat.
Como eu disse, aparece um JTextField onde deveria estar o chat e antes de eu ficar tentando redimensionar, aparecia o botão de enviar e eu consegui enviar mensagens normalmente.
Obrigado!
cassioliveira
vc ter que setar o Jframe como .setLayout(null);
o seu problema é quando vc add um JPanel a um Jframe, ou um Jpanel dentro de outro Jpanel?
Quando começei a trabalhar com Swing, tive bastante dor de cabeça até descobrir que podia deixar o layout como null. Na verdade, toda essa classe que estou trabalhando foi refeita do zero justamente para eu controlar o que estava fazendo e já deixar o layout como null.
Quanto à sua pergunta, o chat é um Jpanel agora e a classe que quero adicionar esse JPanel é um JFrame, mas nesse JFrame criei um outro Jpanel só para conter a classe do chat.
Veja na imagem em anexo como está parecendo na interface.
Obrigado.
De uma olhada nos Gerenciadores de Layout, eu não recomendaria a usar o layout como null. Outra coisa, as classes como o JFrame e JPanel por padrão já estão com os layouts BoxLayout e FlowLayout respectivamente, e se você quiser usar esses mesmos não será necessário ficar setando-os no método setLayout().
Me parece que seu layout está bem simples estão o BoxLayout iria te atender muito bem. Por exemplo
[code]JFrame frame = new JFrame();
//frame.add(BorderLayout.EAST, new Button("Teste 2"));
//frame.add(new Button("Teste 3"));
JPanel panel = new JPanel();
panel.add(new JTextField("Teste"));
panel.add(new Button("Enviar"));
//adiciona ao JFrame
frame.add(new Button("Figuras e Imagens"));
frame.add(BorderLayout.EAST, panel);
///
frame.setSize(800, 500);
frame.setLocationRelativeTo(null); //centraliza
frame.setVisible(true);[/code]
Entendi, o problema é que estou chamando uma classe dentro de outra e cada uma tem seu layout…
Como estou tendo contato somente há poucos dias com GUI, esse jogo de layouts ainda é um pouco confuso pra mim…
De qualquer forma obrigado e vou continuar tentando.