estou com problema para o botao do programa abrir outra classe
para isso eu teria que traalha como listener?? existe outra forma de fazer isso???
valeu!!!
estou com problema para o botao do programa abrir outra classe
para isso eu teria que traalha como listener?? existe outra forma de fazer isso???
valeu!!!
Sim, mas você pode tratar os eventos de uma GUI de diversas maneiras. Quando eu trabalho com swing gosto de implementar interfaces nas classes para tratar os eventos chamando métodos que fazem a ação específica, no seu caso, chamar o construtor de outra classe. Vou postar um exemplo simples, mas o ideal é você dar uma estudada em Listeners e bolar a melhor forma:
1° uma classe simples que é o formulario que vai ser chamado
import javax.swing.*;
public class Frame1 extends JFrame{
public Frame1(){
super("New Frame1!");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setSize(200,200);
setVisible(true);
}
}
2° a classe que vai chamar a primeira
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Frame2 extends JFrame implements ActionListener{
private JButton myBtn;
public Frame2(){
setSize(300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myBtn = new JButton("Nova Frame1");
myBtn.addActionListener(this); // aqui eu adicionei o Listener ao botão
getContentPane().setLayout(new FlowLayout());
getContentPane().add(myBtn);
setVisible(true);
}
private void openFrame1(){ // este é o método de trabalho
new Frame1();
}
public void actionPerformed(ActionEvent ae){ // aqui é a implementação do ActionPerformed
if (ae.getSource() == myBtn) // se o botão clicado foi o myBtn...
openFrame1();
}
public static void main(String[]args){
new Frame2();
}
}
Espero ter ajudado!