.:: Abrir janela dentro de janela ::

Como faço papa abrir uma janela dentro de uma janela? Assim, eu tenho uma classe1 com um frame1 e nesse frame1 tem um botão. Como faço para que, ao clicar no botão, abra uma classe2 dentro do frame1?

Vai funcionar assim: tenho uma barra superior com os botoes, e ao clicar nos botoes, as classes chamadas por esses botoes abrem no mesmo painel, que fica embaixo da barra superior…

Naum sei se fui claro… Qualquer dúvida, por favor, perguntem…

No aguardo,

Não seria o caso de usar uma JInternalFrame?

Hehe… deve ser… Estou iniciando em Java e nunca usei JInternalFrame…
Vou tentar e respondo depois…

Grato,

Basta instanciar a sua segunda classe
Dentro deste botão vc chama a sua segunda classe por exemplo
Classe2 chama = new Classe2();

[/code]

[quote=“massardi”]Basta instanciar a sua segunda classe
Dentro deste botão vc chama a sua segunda classe por exemplo
Classe2 chama = new Classe2();

[/code][/quote]

Não entendi uma coisa: Dentro do botao eu chamo a classe, certo. Naum seria entao:

Button chama = new Classe2(); ??

Grato e no aguardo,

Nãooo pô…

Você cria um método que captura o evento ActionEvent do botão, e ao clicar no botão (dentro do método), você chama a Classe2!


//Isso tá errado!
//Só seria possível isso se Classe2 fosse SUBCLASSE de Button!

Button chama = new Classe2();


[]'s Tjmm.

[quote=“Tjmm”]Nãooo pô…

Você cria um método que captura o evento ActionEvent do botão, e ao clicar no botão (dentro do método), você chama a Classe2!


//Isso tá errado!
//Só seria possível isso se Classe2 fosse SUBCLASSE de Button!

Button chama = new Classe2();


[]'s Tjmm.[/quote]

Valeu, mas tem como vc me explicar como faço isso? ^Tô perdidasso…

Grato e no aguardo,

exemplo

import javax.swing.*;
import java.awt.event.*;

class classe1 extends JFrame implements ActionListener{
private JButton btnOutra= new JButton("abrir outra janela");
 public classe1{
   setTitle("Esta e a classe1");
   JButton
   setContentPane().add(btnOutra);
   setSize(150,100);
   show();

   btnOutra.addActionListener(this);
 }
 
public actionPerformed(ActionEvent e){
   if(e.getSource() == btnOutra){
      classe2 outra = new classe2() // aqui quando vc clicar no botão ele chama sua outra class que deve se chamar classe2 certo é isso ai
   }
}

 public static void main(Strings arg[]){
   classe1 classe = new classe1();
}
}

qualque duvida é so falar

[quote=“massardi”]exemplo

import javax.swing.*;
import java.awt.event.*;

class classe1 extends JFrame implements ActionListener{
private JButton btnOutra= new JButton("abrir outra janela");
 public classe1{
   setTitle("Esta e a classe1");
   JButton
   setContentPane().add(btnOutra);
   setSize(150,100);
   show();

   btnOutra.addActionListener(this);
 }
 
public actionPerformed(ActionEvent e){
   if(e.getSource() == btnOutra){
      classe2 outra = new classe2() // aqui quando vc clicar no botão ele chama sua outra class que deve se chamar classe2 certo é isso ai
   }
}

 public static void main(Strings arg[]){
   classe1 classe = new classe1();
}
}

qualque duvida é so falar[/quote]

Valeu!!!

Agora, e se eu quiser abrir essa classe2 dentro da classe1, por exemplo? Assim, eu tenho uma janela com uma barra de botoes na parte superior, e embaixo da barra de botoes tem a aplicacao em si. Qdo eu clico no botao “Chat”, por exemplo, carrega minha classe Chat embaixo da barra de botoes. Aí se eu clicar no botao “Arquivo” por exemplo, carrega minha classe arquivo no lugar da Chat… Como eu faço isso?

Grato e no aguardo,

Da mesma forma para cada botao que vc for capturar o evento vc manda chamar uma chane-la que vc quer por exemplo

if(e.getSource() == btnChat){
ClassedoChat chat = new ClassedoChat();
}else if(e.getSource() == btnArquivo){
ClassedoArquivo arquivo = new ClassedoArquivo();
}

[quote=“massardi”]Da mesma forma para cada botao que vc for capturar o evento vc manda chamar uma chane-la que vc quer por exemplo

if(e.getSource() == btnChat){ ClassedoChat chat = new ClassedoChat(); }else if(e.getSource() == btnArquivo){ ClassedoArquivo arquivo = new ClassedoArquivo(); } [/quote]

Mas daí abre uma nova janela… Eu gostaria de ter apenas uma janela na tela, dentro da qual abrem as classes, uma de cada vez. A barra de botoes fica fixa no topo da janela, e o que estiver abaixo do botao muda, sem abrir uma nova janela, só substituindo o conteudo… Tem como? Não sei se fui claro…

É mais facil vc então na hora em clicar no botão descarregar a janela atual antes de carregar a outra. quanto a uma janela abrindo dentro de outra janela Seria um InternalFrame.