Boa Tarde, Tenho uma classe de frame principal com varios menus para fazer chamada de outras telas. Acontece que quando clico no menu para abrir
outra tela, nao abre e nao acontece nenhum erro. Estou implementando os eventos na mesma classe, ja fiz em classe separada mas nao adiantou.
Segue minha classe principal:
[code]package Formularios;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
@SuppressWarnings (“serial”)
public class FrmPrincipal extends JFrame {
FrmCadastroProdutos tproduto;
FrmCadCliente tcliente;
FrmCadFuncionario tfuncionario;
public FrmPrincipal() {
JMenuBar menuBar = new JMenuBar();
JMenu menu1 = new JMenu("Cadastro");
JMenu menu2 = new JMenu("Pesquisa");
JMenuItem cliente = new JMenuItem("Cliente");
JMenuItem produto = new JMenuItem("Produto");
JMenuItem sair = new JMenuItem("Sair");
JMenuItem pcliente = new JMenuItem("Cliente");
JMenuItem pproduto = new JMenuItem("Produto");
JMenuItem pfuncionario = new JMenuItem("funcionario");
JMenuItem funcionario = new JMenuItem("Funcionario");
menu1.add(cliente);
menu1.add(produto);
menu1.add(funcionario);
menu1.addSeparator();
menu1.add(sair);
menu2.add(pcliente);
menu2.add(pproduto);
menu2.add(pfuncionario);
menu2.addSeparator();
cliente.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg) {
if (tcliente == null) {
tcliente = new FrmCadCliente();
}
tcliente.setVisible(true);
}
});
produto.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ar) {
if (tproduto == null) {
tproduto = new FrmCadastroProdutos();
}
tproduto.setVisible(true);
}
});
funcionario.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent a) {
if (tfuncionario == null) {
tfuncionario = new FrmCadFuncionario();
}
tfuncionario.setVisible(true);
}
});
sair.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
menuBar.add(menu1);
menuBar.add(menu2);
setJMenuBar(menuBar);
}
public static void main(String[] args) {
FrmPrincipal me = new FrmPrincipal();
me.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
me.setPreferredSize(new Dimension(300,200));
me.pack();
me.setVisible(true);
}
}
[/code]
Agradeco a ajuda.
rso1988
Novembro 8, 2011, 1:00pm
#2
Allex,
os seus eventos estão funcionando corretamente. Provavelmente você deve ter algum problema nas outras telas. Posta o código delas aqui pra gente ver.
yhhik
Novembro 8, 2011, 1:01pm
#3
aparentemente ta td certo…copiei aki pra testar, e aqui está abrindo outra janela.
post o código do FrmCadCliente.
Eu tambem achei bem estranho isso. Ja testei as outras telas separadas e funcionam perfeitamente.
Ai esta a classe CadCliente.
package Formularios;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
@SuppressWarnings("serial")
public class FrmCadCliente extends JPanel {
private String nome = "Nome ";
private String cpf = "CPF ";
private String rg = "RG ";
private String email = "E-mail ";
private String fone = "Fone ";
private String uf = "UF ";
private String bairro = "Bairro ";
private String cidade = "Cidade ";
private String rua = "Rua ";
private String cep = "CEP ";
private String n = "Nº ";
public FrmCadCliente() {
JTextField textField = new JTextField(10);
JTextField textField2 = new JTextField(30);
JTextField textField3 = new JTextField(20);
JTextField textField4 = new JTextField(10);
JTextField textField1 = new JTextField(10);
JTextField cuf = new JTextField(3);
JTextField cbairro = new JTextField(30);
JTextField ccidade = new JTextField(30);
JTextField crua = new JTextField(30);
JTextField ccep = new JTextField(10);
JTextField cn = new JTextField(3);
JLabel textFieldLabel = new JLabel(nome + ": ");
JLabel jcpf = new JLabel(cpf + ": ");
JLabel jcpf1 = new JLabel(rg + ": ");
JLabel jcpf2 = new JLabel(email + ": ");
JLabel jcpf3 = new JLabel(fone + ": ");
JLabel juf = new JLabel(uf + ": ");
JLabel jbairro = new JLabel(bairro + ": ");
JLabel jcidade = new JLabel(cidade + ": ");
JLabel jrua = new JLabel(rua + ": ");
JLabel jcep = new JLabel(cep + ": ");
JLabel jn = new JLabel(n + ": ");
JPanel textControlsPane = new JPanel();
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
JButton jbc = new JButton("Cadastrar");
JButton jbs = new JButton("Sair");
textControlsPane.setLayout(gridbag);
c.gridwidth = 1; // quantidade de espacos verticais
c.gridx = 0;// coluna
c.gridy = 0;// linha
textControlsPane.add(textFieldLabel,c);
c.gridwidth = 3;
c.gridx = 1;// coluna
c.gridy = 0;// linha
textControlsPane.add(textField2,c);
c.gridwidth = 1;
c.gridx = 0; // coluna
c.gridy = 1; // linha
textControlsPane.add(jcpf,c);
c.gridx = 1;// coluna
c.gridy = 1;// linha
c.anchor = GridBagConstraints.WEST;
textControlsPane.add(textField,c);
c.gridx = 2;// coluna
textControlsPane.add(jcpf1,c);
c.gridx = 3;// coluna
textControlsPane.add(textField1,c);
c.gridx = 0;// coluna
c.gridy = 2;// linha
textControlsPane.add(jcpf2,c);
c.gridwidth = 3;
c.gridx = 1;// coluna
c.gridy = 2;// linha
textControlsPane.add(textField3,c);
c.gridwidth = 1;
c.gridx = 0; // coluna
c.gridy = 3; // linha
textControlsPane.add(jcpf3,c);
c.gridx = 1; // coluna
c.gridy = 3; // linha
textControlsPane.add(textField4,c);
c.gridwidth = 3;
c.gridx = 2; // coluna
c.gridy = 3; // linha
c.anchor = GridBagConstraints.LINE_START;
textControlsPane.add(juf,c);
c.gridx = 3; // coluna
c.gridy = 3; // linha
c.anchor = GridBagConstraints.LINE_START;
textControlsPane.add(cuf,c);
c.gridwidth = 3;
c.gridx = 0; // coluna
c.gridy = 4; // linha
c.anchor = GridBagConstraints.LINE_START;
textControlsPane.add(jbairro,c);
c.gridx = 1; // coluna
c.gridy = 4; // linha
textControlsPane.add(cbairro,c);
c.gridwidth = 3;
c.gridx = 0; // coluna
c.gridy = 5; // linha
c.anchor = GridBagConstraints.LINE_START;
textControlsPane.add(jcidade,c);
c.gridx = 1; // coluna
c.gridy = 5; // linha
textControlsPane.add(ccidade,c);
c.gridwidth = 3;
c.gridx = 0; // coluna
c.gridy = 6; // linha
c.anchor = GridBagConstraints.LINE_START;
textControlsPane.add(jrua,c);
c.gridx = 1; // coluna
c.gridy = 6; // linha
textControlsPane.add(crua,c);
c.gridwidth = 1;
c.gridx = 0; // coluna
c.gridy = 7; // linha
c.anchor = GridBagConstraints.LINE_START;
textControlsPane.add(jcep,c);
c.gridx = 1; // coluna
c.gridy = 7; // linha
textControlsPane.add(ccep,c);
c.gridwidth = 3;
c.gridx = 2; // coluna
c.gridy = 7; // linha
c.anchor = GridBagConstraints.LINE_START;
textControlsPane.add(jn,c);
c.gridx = 3; // coluna
c.gridy = 7; // linha
textControlsPane.add(cn,c);
c.anchor = GridBagConstraints.LINE_END;
c.gridx = 3; // coluna
c.gridy = 8; // linha
textControlsPane.add(jbc,c);
c.anchor = GridBagConstraints.LINE_END;
c.gridx = 3; // coluna
c.gridy = 9; // linha
textControlsPane.add(jbs,c);
jbs.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
textControlsPane.setBorder(
BorderFactory.createCompoundBorder(
BorderFactory.createTitledBorder("Cadastro de Cliente"),
BorderFactory.createEmptyBorder(1,1,1,1)));
textControlsPane.setPreferredSize(new Dimension(600,350));
JPanel leftPane = new JPanel(new BorderLayout());
leftPane.add(textControlsPane,
BorderLayout.PAGE_START);
add(leftPane, BorderLayout.LINE_START);
}
public static void main(String[] args) {
JFrame frame = new JFrame("Tela de Cadastro");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new FrmCadCliente());
frame.setPreferredSize(new Dimension(650,400));
frame.pack();
frame.setVisible(true);
}
}
yhhik
Novembro 8, 2011, 1:44pm
#5
não seria melhor herdar de um JFrame ou um JDialog em vez de um painel?
so sua classe principal precisa de um metodo main.
tente agora.
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
@SuppressWarnings("serial")
public class FrmCadCliente extends JFrame {
private String nome = "Nome ";
private String cpf = "CPF ";
private String rg = "RG ";
private String email = "E-mail ";
private String fone = "Fone ";
private String uf = "UF ";
private String bairro = "Bairro ";
private String cidade = "Cidade ";
private String rua = "Rua ";
private String cep = "CEP ";
private String n = "Nº ";
public FrmCadCliente() {
JTextField textField = new JTextField(10);
JTextField textField2 = new JTextField(30);
JTextField textField3 = new JTextField(20);
JTextField textField4 = new JTextField(10);
JTextField textField1 = new JTextField(10);
JTextField cuf = new JTextField(3);
JTextField cbairro = new JTextField(30);
JTextField ccidade = new JTextField(30);
JTextField crua = new JTextField(30);
JTextField ccep = new JTextField(10);
JTextField cn = new JTextField(3);
JLabel textFieldLabel = new JLabel(nome + ": ");
JLabel jcpf = new JLabel(cpf + ": ");
JLabel jcpf1 = new JLabel(rg + ": ");
JLabel jcpf2 = new JLabel(email + ": ");
JLabel jcpf3 = new JLabel(fone + ": ");
JLabel juf = new JLabel(uf + ": ");
JLabel jbairro = new JLabel(bairro + ": ");
JLabel jcidade = new JLabel(cidade + ": ");
JLabel jrua = new JLabel(rua + ": ");
JLabel jcep = new JLabel(cep + ": ");
JLabel jn = new JLabel(n + ": ");
JPanel textControlsPane = new JPanel();
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
JButton jbc = new JButton("Cadastrar");
JButton jbs = new JButton("Sair");
textControlsPane.setLayout(gridbag);
c.gridwidth = 1; // quantidade de espacos verticais
c.gridx = 0;// coluna
c.gridy = 0;// linha
textControlsPane.add(textFieldLabel,c);
c.gridwidth = 3;
c.gridx = 1;// coluna
c.gridy = 0;// linha
textControlsPane.add(textField2,c);
c.gridwidth = 1;
c.gridx = 0; // coluna
c.gridy = 1; // linha
textControlsPane.add(jcpf,c);
c.gridx = 1;// coluna
c.gridy = 1;// linha
c.anchor = GridBagConstraints.WEST;
textControlsPane.add(textField,c);
c.gridx = 2;// coluna
textControlsPane.add(jcpf1,c);
c.gridx = 3;// coluna
textControlsPane.add(textField1,c);
c.gridx = 0;// coluna
c.gridy = 2;// linha
textControlsPane.add(jcpf2,c);
c.gridwidth = 3;
c.gridx = 1;// coluna
c.gridy = 2;// linha
textControlsPane.add(textField3,c);
c.gridwidth = 1;
c.gridx = 0; // coluna
c.gridy = 3; // linha
textControlsPane.add(jcpf3,c);
c.gridx = 1; // coluna
c.gridy = 3; // linha
textControlsPane.add(textField4,c);
c.gridwidth = 3;
c.gridx = 2; // coluna
c.gridy = 3; // linha
c.anchor = GridBagConstraints.LINE_START;
textControlsPane.add(juf,c);
c.gridx = 3; // coluna
c.gridy = 3; // linha
c.anchor = GridBagConstraints.LINE_START;
textControlsPane.add(cuf,c);
c.gridwidth = 3;
c.gridx = 0; // coluna
c.gridy = 4; // linha
c.anchor = GridBagConstraints.LINE_START;
textControlsPane.add(jbairro,c);
c.gridx = 1; // coluna
c.gridy = 4; // linha
textControlsPane.add(cbairro,c);
c.gridwidth = 3;
c.gridx = 0; // coluna
c.gridy = 5; // linha
c.anchor = GridBagConstraints.LINE_START;
textControlsPane.add(jcidade,c);
c.gridx = 1; // coluna
c.gridy = 5; // linha
textControlsPane.add(ccidade,c);
c.gridwidth = 3;
c.gridx = 0; // coluna
c.gridy = 6; // linha
c.anchor = GridBagConstraints.LINE_START;
textControlsPane.add(jrua,c);
c.gridx = 1; // coluna
c.gridy = 6; // linha
textControlsPane.add(crua,c);
c.gridwidth = 1;
c.gridx = 0; // coluna
c.gridy = 7; // linha
c.anchor = GridBagConstraints.LINE_START;
textControlsPane.add(jcep,c);
c.gridx = 1; // coluna
c.gridy = 7; // linha
textControlsPane.add(ccep,c);
c.gridwidth = 3;
c.gridx = 2; // coluna
c.gridy = 7; // linha
c.anchor = GridBagConstraints.LINE_START;
textControlsPane.add(jn,c);
c.gridx = 3; // coluna
c.gridy = 7; // linha
textControlsPane.add(cn,c);
c.anchor = GridBagConstraints.LINE_END;
c.gridx = 3; // coluna
c.gridy = 8; // linha
textControlsPane.add(jbc,c);
c.anchor = GridBagConstraints.LINE_END;
c.gridx = 3; // coluna
c.gridy = 9; // linha
textControlsPane.add(jbs,c);
jbs.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
textControlsPane.setBorder(
BorderFactory.createCompoundBorder(
BorderFactory.createTitledBorder("Cadastro de Cliente"),
BorderFactory.createEmptyBorder(1,1,1,1)));
textControlsPane.setPreferredSize(new Dimension(600,350));
JPanel leftPane = new JPanel(new BorderLayout());
leftPane.add(textControlsPane,
BorderLayout.PAGE_START);
add(leftPane, BorderLayout.LINE_START);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(650,400);
this.pack();
}
}
yhhik
Novembro 8, 2011, 1:51pm
#6
outra coisa em seu FrmCadCliente use isso:dispose();
em vez disso:System.exit(0);
ou o projeto td será fechado.
Deu certo, Valeu Galera Muito obrigado pela ajuda, provavelmente em breve terei mais duvidas, hehe
Grande abraço!!!