JPanel em JFrame

9 respostas
B

Pessoal, é uma dúvida bem boba mesmo, mas é o seguinte…

Sou iniciante em Java e principalmente com NetBeans… Criei um JFrame com um Menu com dois “botões” e gostaria de saber como eu faço para abrir um JPanel dentro do JFrame quando um desses “botões” for clicado.

9 Respostas

S

Basta fazeres no evento do botão o seguinte:

painel.setVisible(true);
B

Então cara, o problema é que o meu painel é uma outra classe. Eu tentei criar um objeto e chamar ele assim deste jeito, o programa roda, mas quando clico no botão, simplesmente não acontece nada…

J

Oi,

A melhor coisa que vc pode fazer é criar um JDesktopPane (em cima de seu

Frame) e quando clicar no botão abrir um JInternalFrame.

Bye!

B

Então, eu vou dizer mais ou menos o que eu queria q acontecesse daí vcs me dizem se dá pra fazer ou não…

Eu queria q esse JFrame tivesse dois botões, e que cada um desses botões abrisse um JPanel dentro desse JFrame. Cada um desses JPanel é uma classe diferente (um *.java) e, dentro desses JPanel, existiriam outras funções que abririam outros JPanel, e assim por diante…

Dá pra fazer isso, ou eu tenho que ficar abrindo JFrames e chamando com o show() mesmo???

B

Ajuda aí pessoal, por favor!!!

G

Dá uma pesquisada sobre CardLayout … Talvez te dê uma outra idéia de como fazer a tela …

Ah … pra adicionar um um JPainel num JFrame do jeito que vc quer acho que é assim:

//instancia a classe que tem o painel que vc quer adicionar (Classe Painel extends JPanel ou vc indica o JPainel como atritubo, nesse caso indique o atributo no método explicado abaixo)

//exemplo

Painel p = new Painel();

//adiciona no frame

//caso você tenha feito uma generalização da classe JFrame (extends JFrame <<no cabeçalho da classe>>)

this.setContentPane§;

//caso você tenha feito uma instancia de JFrame ex: JFrame frame = new JFrame();

frame.setContentPane§;

Assim que eu faria.
Resumindo: utiliza o método setContentPanel(Container) da Classe javax.swing.JFrame

Espero ter ajudado em algo.

Abração

H

acredito que o que o benreyle está querendo é o evento de clicar no botão. Estou certo?
se for, o código é assim:

botao.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent e){
                //aqui você coloca o que você quer que ocorra quando clicar no                 
                //botão
                //se quiser que abra uma nova janela, é só colocar
                // new NovaJanela().setVisible(true);
        }
});
B

Valeu galera, vou tentar isso aí…

=D

B

Galera, a boa notícia, é que com a reposta do Gustavo eu consegui fazer aparecer os JPanels. Obrigado a todos, q tentaram me ajudar, mesmo assim.

Só que agora o problema é outro, quando eu abro o meu filemenu, e clico em um botão, o Jpanel aparece certinho, mas se eu abro novamente o filemenu e clico em um botão diferente, o JPanel abre meio deslocado, e eu tenho que maximizar e restaurar a janela do aplicativo pro JPanel centralizar na tela.

É, eu sei que é estranho, mas eu precisava de ajuda de novo… Alguém sabe o que pode estar fazendo isso acontecer???

Criado 10 de junho de 2007
Ultima resposta 16 de jun. de 2007
Respostas 9
Participantes 5