Fórum Dúvida - JMenuItem #480257
26/05/2014
0
Fala galera, tudo bem?
Então to construindo uma aplicação com Swing (primeira vez), eis que surgiu um problema. Durante a declaração de um JMenuItem eu usei um if com getsource pra pegar um JMenuItem pelo nome e instanciar uma outra janela dentro dele. Porem não deu certo! :( Alguém da uma força ? Não sei se JMenuItem é tratado dessa maneira ou tem que fazer algo diferente.
Segue os códigos:
Tela 1 - Principal
Tela 2 - Caixa de Log
Então to construindo uma aplicação com Swing (primeira vez), eis que surgiu um problema. Durante a declaração de um JMenuItem eu usei um if com getsource pra pegar um JMenuItem pelo nome e instanciar uma outra janela dentro dele. Porem não deu certo! :( Alguém da uma força ? Não sei se JMenuItem é tratado dessa maneira ou tem que fazer algo diferente.
Segue os códigos:
Tela 1 - Principal
package br.me.agenda.gui;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class CadastroAgenda extends JFrame implements ActionListener {
private static final long serialVersionUID = 4220238498998112507L;
private Container container;
private JMenuBar jmbBarraPrincipal;
private JMenu jmNovo;
private JMenu jmAjuda;
private JMenu jmSobre;
//Itens do menu Novo
private JMenuItem jmiLogar;
private JMenuItem jmiSair;
//Itens do menu Ajuda
private JMenuItem jmiComoUtilizar;
//Itens do menu Sobre
private JMenuItem jmiSobre;
//Construtor
public CadastroAgenda(){
container = this.getContentPane();
container.setLayout(new FlowLayout());
this.setSize(800, 600);
this.setBackground(Color.GRAY);
this.setTitle("Cadastro de Pessoa");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jmbBarraPrincipal = new JMenuBar();
jmNovo = new JMenu ("Novo");
jmAjuda = new JMenu ("Ajuda");
jmSobre = new JMenu ("Sobre");
jmiLogar = new JMenuItem ("Logar");
jmiSair = new JMenuItem ("Sair");
jmiComoUtilizar = new JMenuItem ("Como usar ?");
jmiSobre = new JMenuItem ("Sobre");
this.setJMenuBar(jmbBarraPrincipal);
this.setLocationRelativeTo(null);
jmbBarraPrincipal.add(jmNovo);
jmbBarraPrincipal.add(jmAjuda);
jmbBarraPrincipal.add(jmSobre);
jmNovo.add(jmiLogar);
jmNovo.add(jmiSair);
jmAjuda.add(jmiComoUtilizar);
jmSobre.add(jmiSobre);
}
public static void main(String[] args) {
CadastroAgenda Cadastro = new CadastroAgenda();
Cadastro.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jmiLogar){
new LogarPessoa();
}
}
}
Tela 2 - Caixa de Log
package br.me.agenda.gui;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class LogarPessoa extends JFrame implements ActionListener{
private static final long serialVersionUID = -1141938683594334009L;
//Botões
private JButton btnLogar;
private JButton btnCancelar;
//Labels
private JLabel lblNome;
private JLabel lblSenha;
//Campo de text
private JTextField txfNome;
private JTextField txfSenha;
//Container
private Container container;
public LogarPessoa() {
super("Controle de pessoa");
//Container
container = this.getContentPane();
container.setLayout(new FlowLayout());
this.setSize(400, 120);
this.setBackground(Color.GRAY);
//Bloco de botões
btnCancelar = new JButton("Cancelar");
btnLogar = new JButton("Logar");
//Label
lblNome = new JLabel(" Nome");
lblSenha = new JLabel("Senha");
//Text
txfNome = new JTextField(30);
txfSenha = new JPasswordField(30);
container.add(lblNome);
container.add(txfNome);
container.add(lblSenha);
container.add(txfSenha);
container.add(btnLogar);
container.add(btnCancelar);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.btnCancelar.addActionListener(this);
this.btnLogar.addActionListener(this);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.pack();
}
/*public static void main(String[] args) {
LogarPessoa cp = new LogarPessoa();
cp.setVisible(true);
}*/
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == btnLogar){
JOptionPane.showMessageDialog(null, "Ainda não é possível executar esta operação.");
}
else if (e.getSource() == btnCancelar){
JOptionPane.showMessageDialog(null, "Ainda não é possível cancelar.");
}
}
}
Fábio Carvalho
Curtir tópico
+ 0
Responder
Posts
26/05/2014
Fábio Carvalho
Opa galera, consegui! Faltou declarar o não acredito que mosquei 2 dias nisso :p.
Podem apagar aqui, vlw!
jmiLogar.addActionListener(this);
Podem apagar aqui, vlw!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)