GARANTIR DESCONTO

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

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

Fábio Carvalho

Responder

Posts

26/05/2014

Fábio Carvalho

Opa galera, consegui! Faltou declarar o
jmiLogar.addActionListener(this);
não acredito que mosquei 2 dias nisso :p.

Podem apagar aqui, vlw!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar