Meu problema é o seguinte, estou desenvolvendo um sistema (meu primeiro sozinho) e tenho problemas em trocas de janelas, por exemplo, em determinada janela(janela x) há um botão Alterar que tem por Action Performed a abertura de uma nova janela(janela y), Como faço para que quando o botão Alterar for pressionado na janela x e a janela y aparecer, a janela x desapareça?
bom, vc usara o método dispose(), para matar a janela. Então vc pode tentar varias coisas, como instanciar a janela Y e destruir a X no próprio action performed, ou passar a janela X como parametro para a Action/Janela Y, e dar um dispose() de lá.
Bom para dar uma dica mais consistence seria necessário entender como estás estruturando essas trocas de janela!
dispose(); //Acho eu que aqui ja funcionaria
AlteraProdutos altprd = new AlteraProdutos();
altprd.setVisible(true);
altprd.setLocation(300,300);
altprd.setResizable(false);
} [/code]
Testei aqui por cima num código meu e deveria funcionar.
tenho um frame com uma JMenuBar e quero mudar de panel cada vez q item de menu eh acessado… posso usar isso? se alguem tiver outra solção estou um tempo tentando resolver isso e não consigo. meu codigo eh mais ou menos assim.
public class Main extends JFrame {
private JPanel panel1;
private JPanel panel2;
private JPanel panel3;
private JPanel panel4;
public Main() {
panel1= new JPanel ();
panel2= new JPanel ();
panel3= new JPanel ();
panel4= new JPanel ();
this.addWindowListener(new BasicWindowMonitor());
this.setJMenuBar(montaBarra());
this.setSize(800, 600);
this.setVisible(true);
}
public JMenuBar montaBarra() {
JMenuBar barra = new JMenuBar();
JMenuItem item;
JMenu menu = new JMenu("Painéis");
menu.add(item = new JMenuItem("Painel 1"));
item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//transformar o panel1 visível
}
});
menu.add(item = new JMenuItem("Painel 2"));
item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//transformar o panel2 visível
}
});
menu.add(item = new JMenuItem("Painel 3"));
item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//transformar o panel3 visível
}
});
menuProduto.addSeparator();
menu.add(item = new JMenuItem("Painel 4");
item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//transformar o panel4 visível
}
});
barra.add(menuProduto);
return barra;
}
public static void main(String[] args) {
Main main = new Main();
}
}
[quote] isso funciona pra esse caso?
tenho um frame com uma JMenuBar e quero mudar de panel cada vez q item de menu eh acessado… posso usar isso? se alguem tiver outra solção estou um tempo tentando resolver isso e não consigo. meu codigo eh mais ou menos assim. [/quote]
Fera, se entendi o que você precisa isso não vai funcionar para o seu caso, porque é uma implementação para classes propriamente de interface.
O que você está querendo está relacionado aos menuzinhos que se abrem quando clica em um jMenuBar?
Se for, então resolva isso com a implementação dos Menus PopUp’s agregados…
Abra um tópico específico para esse seu problema e descreva-o melhor para a gente poder te ajudar.
Um abraço!
Estou fazendo meu primeiro projeto e precisava justamente utilizar um botão para mudar entre uma janela e outra (tipo aqueles botões Próximo e Voltar que tem em muitos programas Desktop)… E encontrei essa dica valiosa aqui. Funciona que é uma beleza.