Caros amigos, estou com uma certa dificuldade com o JButton, gostaria de saber como fazer para abrir um JFrame diferente usando um JButton?
Brother… como já estudei isso tbem, tenho um exemplo.
Pega esse meu exemplo de código e dê uma estudada,
ele além de chamar outra janela chama uma janela modal (estilo modal do vb)
Código java para a primeira janela
//Janela1.java
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class Janela1 extends JFrame implements ActionListener {
JPanel panButtons = new JPanel(); // painel com os botoes da aplicacao
JScrollPane scroll = new JScrollPane(); // scroll para conter viewPort sob um JTable
// componentes basicos
JButton button;
Janela1 {
super("Janela 1");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(10, 10, 400,400);
// definindo o formato do contentPanel
getContentPane().setLayout(new BorderLayout());
// criacao da tabela (model e view)
String [] colunas = new String[]{"Estado", "Capital"};
String[][] dados = new String[][] {
{"SP", "Sao Paulo"},
{"RJ", "Rio de Janeiro"}};
DefaultTableModel modelo = new DefaultTableModel(dados, colunas);
JTable table = new JTable(modelo);
scroll.setViewportView(table); // adicionando o componente dentro do viewPort
// criando o painel com botoes
panButtons.setLayout(new FlowLayout());
button = new JButton("Adicionar");
button.addActionListener(this);
button.setName("add");
panButtons.add(button);
button = new JButton("Remover");
button.addActionListener(this);
panButtons.add(button);
// adicionando tudo no painel principal (contentPane)
add(scroll, BorderLayout.CENTER);
add(panButtons, BorderLayout.SOUTH);
}
public void actionPerformed( ActionEvent e ) {
JButton btSource = (JButton)e.getSource();
if (btSource.getName() == "add") {
Janela2 fm = new Janela2(this);
fm.setVisible(true);
}
}
}
Código java para a segunda janela
//Janela2.java
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Janela2 extends JDialog {
private JPanel pan, panbt;
private JLabel lbl;
private JTextField txt;
private JButton button;
Janela2(JFrame pai) {
super(pai, true);
super.getContentPane().setLayout(new BorderLayout());
// campos da tela
pan = new JPanel(new GridLayout(4,2));
lbl = new JLabel("id:");
txt = new JTextField(20);
pan.add(lbl, 0); pan.add(txt, 1);
lbl = new JLabel("nome:");
txt = new JTextField(20);
pan.add(lbl, 0); pan.add(txt, 1);
lbl = new JLabel("email:");
txt = new JTextField(20);
pan.add(lbl, 0); pan.add(txt, 1);
lbl = new JLabel("endereco:");
txt = new JTextField(20);
pan.add(lbl, 0); pan.add(txt, 1);
// botoes
panbt = new JPanel(new FlowLayout());
button = new JButton("Save");
panbt.add(button);
button = new JButton("Cancel");
panbt.add(button);
// adicionando no jframe
add(pan, BorderLayout.CENTER);
add(panbt, BorderLayout.SOUTH);
super.setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);
super.setBounds(10, 10, 400,400);
}
}