Galera, tô criando uma interface gráfica pra um projeto aqui, e preciso que, ao clicar em incluir (que é um subitem de um item de menu) abra um novo JFrame… criei uma classe interna para o ActionListener dessa ação, vou colocar uma foto do programa rodando com o código que não está funcionando, e o Script também… Desde já obrigado!
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.WindowConstants;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JOptionPane;
public class Menu extends JFrame{
private JMenuItem itemIncluir;
private JTextField txtNome;
private JTextField txtFone;
private JMenuItem itemSair;
private JMenuItem itemConsultar;
private JMenuItem itemExcluir;
private JMenuItem itemAlterar;
public Menu(){
super("Sistema de Cadastro");
CriarMenus();
ChamaTudo();
}
public void CriarMenus(){
IncluirAction incluirAction = new IncluirAction();
SairAction sairAction = new SairAction();
JMenu cadastro = new JMenu("Cadastro");
JMenu itemCliente = new JMenu("Cliente");
JMenu itemPedido = new JMenu("Pedido");
itemSair = new JMenuItem("Sair");
itemIncluir = new JMenuItem("Incluir");
itemConsultar = new JMenuItem("Consultar");
itemExcluir = new JMenuItem("Excluir");
itemAlterar = new JMenuItem("Alterar");
itemCliente.add(itemIncluir);
itemCliente.add(itemConsultar);
itemCliente.add(itemExcluir);
itemCliente.add(itemAlterar);
itemIncluir.addActionListener(incluirAction);
itemSair.addActionListener(sairAction);
cadastro.add(itemCliente);
cadastro.add(itemPedido);
cadastro.add(itemSair);
JMenuBar barra = new JMenuBar();
setJMenuBar(barra);
barra.add(cadastro);
}
public void ChamaTudo(){
setLayout(new BorderLayout());
SalvarAction salvarAction = new SalvarAction();
CancelarAction cancelarAction = new CancelarAction();
ProximoAction proximoaction = new ProximoAction();
JPanel cadastro = new JPanel();
cadastro.setLayout(new FlowLayout());
JLabel lblNome = new JLabel("Nome");
txtNome = new JTextField(30);
JLabel lblFone = new JLabel("Fone");
txtFone = new JTextField(30);
cadastro.add(lblNome);
cadastro.add(txtNome);
cadastro.add(lblFone);
cadastro.add(txtFone);
JPanel botoes = new JPanel();
botoes.setLayout(new FlowLayout());
JButton salvar = new JButton("Salvar");
salvar.addActionListener(salvarAction);
JButton cancelar = new JButton("Cancelar");
cancelar.addActionListener(cancelarAction);
JButton proximo = new JButton("Próximo");
botoes.add(salvar);
botoes.add(cancelar);
botoes.add(proximo);
add(cadastro, BorderLayout.CENTER);
add(botoes, BorderLayout.SOUTH);
}
private class SalvarAction implements ActionListener{
@Override
public void actionPerformed(ActionEvent event){
}
}
private class CancelarAction implements ActionListener{
@Override
public void actionPerformed(ActionEvent event){
}
}
private class ProximoAction implements ActionListener{
@Override
public void actionPerformed(ActionEvent event){
}
}
private class IncluirAction implements ActionListener{
@Override
public void actionPerformed(ActionEvent e){
if ("Incluir".equals(e.getActionCommand())){
setLayout(new BorderLayout());
Menu m = new Menu();
m.setVisible(true);
m.setLocation(490, 217);
m.setSize(340,420);
m.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
m.setResizable(false);
}
}
}
private class SairAction extends JFrame implements ActionListener{
@Override
public void actionPerformed(ActionEvent e){
if ("Sair".equals(e.getActionCommand()))
System.exit(0);
}
}
}
import javax.swing.JFrame;
public class Testsss{
public static void main(String args[]){
Menu menu = new Menu();
Menu m = new Menu();
menu.setLocation(490, 217);
menu.setSize(340,420);
menu.setVisible(true);
menu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
menu.setResizable(false);
}
}