Problema com swing e VE

4 respostas
Camila_Matos_Bittenc

Olá…

Estou precisando de uma ajuda, estou desenvolvendo um sistema começei a far com o eclipse e fiz as telas no braço, mas agora coloquei o VE no meu eclipse, e gostaria de usar somente a primeira tela que fiz anteriomente e fazer ela chamar a tela criada com o VE… mas não estou conseguindo…

Abaixo a parte do código da tela inicial que chama a outra, no item menu:

JMenu cadastro = new JMenu("Cadastro");
		
		barraMenuAdm.add(cadastro);
		JMenuItem clienteF = new JMenuItem("Cliente - Pessoa Fisica");
		clienteF.addActionListener(new CadastroClienteFisico());
		JMenuItem clienteJ = new JMenuItem("Cliente - Pessoa Juridica");
		clienteJ.addActionListener(new CadastroClienteFisico());
		JMenuItem funcionario = new JMenuItem("Funcionario");
		funcionario.addActionListener(new CadastroFunc());
		
		cadastro.add(clienteF);
		cadastro.add(clienteJ);
		cadastro.add(funcionario);

Os itens estão aparecendo corretamente no menu…

Abaixo as primeiras linhas da tela criada com o ve…

public class CadastroClienteFisico extends JInternalFrame implements ActionListener {

	private JPanel jContentPane = null;
	private JButton confBot = null;
	private JLabel nomeLabel = null;
	private JLabel cpfLabel = null;
	private JLabel endLabel = null;
	private JLabel numLabel = null;
	private JLabel complLabel = null;
	private JLabel cepLabel = null;
	private JLabel cidadeLabel = null;
	private JLabel bairroLabel = null;
	private JLabel telFixoLabel = null;
	private JLabel telCelLabel = null;
	private JTextField nomeField = null;
	private JTextField cpfField = null;
	private JTextField endField = null;
	private JTextField numField = null;
	private JTextField compField = null;
	private JTextField cidadeField = null;
	private JTextField bairroField = null;
	private JTextField cepField = null;
	private JTextField telFixoField = null;
	private JTextField telCelField = null;
	/**
	 * This is the xxx default constructor
	 */
	public CadastroClienteFisico() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(394, 282);
		this.setTitle("Cadastro Cliente - Pessoa Fisica");
		this.setContentPane(getJContentPane());
	}

Notem que tentei colocar o ActionListener, implementei os metodos mas ele inclui no final do código e quando tento colocar no inicio do código da erro em tudo…

Por favor me ajudem…
:shock:

4 Respostas

laudenpower

Coloque a classe Principal completa tipo para sabermos como você está tratando o evento de clique de mouse… Nesse caso você deve na classe que vai chamar a outra tela implementar o método actionPerformed(ActionEvent ae) e utilizar o método ae.getSource() para saber qual item de menu foi clicado, para em seguida criar a chamada, não esquecendo ainda de dar um JFrame.setVisible(true) para a janela aparecer.

Espero ter ajudado.

Camila_Matos_Bittenc

Desculpa, mas ainda estou aprendendo a utilizar o ve…

Segue abaixo os códigos completos…

package com.seguranca.janela;

import java.awt.Component;
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

import com.seguranca.banco.MySql;
import com.seguranca.dado.Usuario;




@SuppressWarnings("serial")
public class TelaInicial extends JFrame {
	
	private JDesktopPane desktop;
	private JMenuBar barraMenuAdm;
	private JInternalFrame telaLog;
	
	private JTextField loginField;
	private JTextField senhaField;
	
	private GridBagLayout layout;
	private GridBagConstraints constraints;
	
	private static TelaInicial instancia;
	//metodo responsavel por criar ou retornar a janela principal (unica)
		public static TelaInicial retornaTelaInicial(){
			if (instancia == null)
				instancia = new TelaInicial();
			return instancia;
		
	}
	//Contrutor
		//abrir maximixada
	private TelaInicial(){
		super("...Perola...");
		
		layout = new GridBagLayout();
		constraints = new GridBagConstraints();
		constraints.insets = new Insets(5,5,5,5);
		
		Container painel = getContentPane();
		desktop = new JDesktopPane();
		painel.add(desktop);
		
		
		//Barra de menu do Adminstrador
		barraMenuAdm = new JMenuBar();
		JMenu menuLog = new JMenu("Logoff");
		barraMenuAdm.add(menuLog);
		JMenuItem logoff = new JMenuItem("Logoff");
	//	logoff.addActionListener(new Logoff());
		JMenuItem exit = new JMenuItem("Sair");
//		exit.addActionListener(new Exit());	
		
		menuLog.add(logoff);
		menuLog.add(exit);
		
		JMenu cadastro = new JMenu("Cadastro");
		
		barraMenuAdm.add(cadastro);
		JMenuItem clienteF = new JMenuItem("Cliente - Pessoa Fisica");
		clienteF.addActionListener(new CadastroClienteFisico());
		JMenuItem clienteJ = new JMenuItem("Cliente - Pessoa Juridica");
		clienteJ.addActionListener(new CadastroClienteFisico());
		JMenuItem funcionario = new JMenuItem("Funcionario");
		funcionario.addActionListener(new CadastroFunc());
		
		cadastro.add(clienteF);
		cadastro.add(clienteJ);
		cadastro.add(funcionario);
		
		JMenu pesquisa = new JMenu("Pesquisar");
		
		barraMenuAdm.add(pesquisa);
		JMenuItem clientes = new JMenuItem("Clientes");
	//	clientes.addActionListener(new PesquisaClient());
		JMenuItem vendas = new JMenuItem("Vendas");
//		vendas.addActionListener(new PesquisarVendas());
		
		pesquisa.add(clientes);
		pesquisa.add(vendas);
		
		JMenu registrar = new JMenu("Registrar");
		
		barraMenuAdm.add(registrar);
		JMenuItem novaVenda = new JMenuItem("Venda");
		novaVenda.addActionListener(new RegistrarServico());
		
		registrar.add(novaVenda);
		
		JMenu agenda = new JMenu("Agenda");
		
		barraMenuAdm.add(agenda);
		JMenuItem instalacao = new JMenuItem("Instalação");
	//	instalacao.addActionListener(new AgendarInstalacao());
		JMenuItem manutencao = new JMenuItem("Manutenção");
//		manutencao.addActionListener(new AgendarManutencao());
		JMenuItem visita = new JMenuItem("Visita");
//		visita.addActionListener(new AgendarVisita());
		JMenuItem consultarAgenda = new JMenuItem("Consultar Agendamentos");
//		consultarAgenda.addActionListener(new ConsultarAgenda());
		
		agenda.add(instalacao);
		agenda.add(manutencao);
		agenda.add(visita);
		agenda.add(consultarAgenda);

		
	
		//mostra tela login
			telaLog = new Logon();
				
				telaLog.setLayout(layout);
				telaLog.setBounds(150,100, 200, 200);
			
				JLabel logLabel = new JLabel("Login:");
				loginField = new JTextField(10);
				JLabel senhaLabel = new JLabel("Senha:");
				senhaField = new JPasswordField(10);
			
				JButton botao = new JButton("Confirmar");
				botao.addActionListener(new EventoBotao());
				
				addComponent(logLabel, 1, 1, 1, 1);
				addComponent(loginField, 1, 2, 1, 1);
				addComponent(senhaLabel, 2, 1, 1, 1);
				addComponent(senhaField, 2, 2, 1, 1);
				addComponent(botao, 4, 2, 1, 1);
				
				
		// Colocando a janela de login no Desktop
		desktop.add(telaLog);
		
		setExtendedState(MAXIMIZED_BOTH);
		setSize(500, 500);
		setVisible(true);

	}

	private void addComponent(Component component, int linha, int coluna, int largura, int altura) {
		
		// Linha que o componente esta colocado
		constraints.gridy = linha;
		
		// Coluna que o componente esta colocado
		constraints.gridx = coluna;
		
		// número de colunas que o componente ocupa
		constraints.gridwidth = largura;
		
		// número de linhas que o componente ocupa
		constraints.gridheight = altura;

		//configura as restrições para um componente
		layout.setConstraints(component, constraints);
		
		//coloca ocomponente na tela
		telaLog.add(component);
	}
	
	private class EventoBotao implements ActionListener{

		@SuppressWarnings("deprecation")
		public void actionPerformed(ActionEvent arg0) {
		
			
			Usuario dig = new Usuario();
			dig.setLogin(loginField.getText());
			dig.setSenha(senhaField.getText());
			
			
			MySql banco = new MySql();
			
			banco.connect();
			ArrayList<Usuario> usuario = banco.getUsuario();
			
				String L = "0"; 
			
				for(Usuario user : usuario){
				
					
					String id = user.getIdUsuario();
					String log = user.getLogin();
					String pass = user.getSenha();
									
					String login = loginField.getText();
					String senha = senhaField.getText();
					
					
					System.out.println(id+"-"+log+"-"+login);
					
					if(login.equals(log)){
						L = "1";
						if(senha.equals(pass)){
							
							JOptionPane.showMessageDialog(null, "Bem Vindo");
							
							telaLog.dispose();	
							setJMenuBar(barraMenuAdm);				
							
						}
						else{
							JOptionPane.showMessageDialog(null, "Senha incorreta","ERRO",JOptionPane.ERROR_MESSAGE);
							senhaField.setText("");

						}	
						
					}
										
				}
				if (L.equals("0")){
					JOptionPane.showMessageDialog(null, "Login incorreto","ERRO",JOptionPane.ERROR_MESSAGE);
					loginField.setText("");
					senhaField.setText("");
					
				}
				
				banco.disconnect();
		}
	}
	public JDesktopPane getDesktop() {
		return desktop;
	}
	public void setDesktop(JDesktopPane desktop) {
		this.desktop = desktop;
	}

}

e o código da tela…

package com.seguranca.janela;

import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import com.seguranca.banco.MySql;
import com.seguranca.dado.ClienteFisico;

@SuppressWarnings("serial")
public class CadastroClienteFisico extends JInternalFrame implements ActionListener {

	private JPanel jContentPane = null;
	private JButton confBot = null;
	private JLabel nomeLabel = null;
	private JLabel cpfLabel = null;
	private JLabel endLabel = null;
	private JLabel numLabel = null;
	private JLabel complLabel = null;
	private JLabel cepLabel = null;
	private JLabel cidadeLabel = null;
	private JLabel bairroLabel = null;
	private JLabel telFixoLabel = null;
	private JLabel telCelLabel = null;
	private JTextField nomeField = null;
	private JTextField cpfField = null;
	private JTextField endField = null;
	private JTextField numField = null;
	private JTextField compField = null;
	private JTextField cidadeField = null;
	private JTextField bairroField = null;
	private JTextField cepField = null;
	private JTextField telFixoField = null;
	private JTextField telCelField = null;
	/**
	 * This is the xxx default constructor
	 */
	public CadastroClienteFisico() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(394, 282);
		this.setTitle("Cadastro Cliente - Pessoa Fisica");
		this.setContentPane(getJContentPane());
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			telCelLabel = new JLabel();
			telCelLabel.setBounds(new Rectangle(190, 164, 46, 21));
			telCelLabel.setText("Celular:");
			telFixoLabel = new JLabel();
			telFixoLabel.setBounds(new Rectangle(16, 165, 83, 21));
			telFixoLabel.setText("Telefone Fixo:");
			bairroLabel = new JLabel();
			bairroLabel.setBounds(new Rectangle(146, 134, 38, 23));
			bairroLabel.setText("Bairro:");
			cidadeLabel = new JLabel();
			cidadeLabel.setBounds(new Rectangle(16, 135, 45, 20));
			cidadeLabel.setText("Cidade:");
			cepLabel = new JLabel();
			cepLabel.setBounds(new Rectangle(259, 138, 29, 19));
			cepLabel.setText("CEP:");
			complLabel = new JLabel();
			complLabel.setBounds(new Rectangle(147, 103, 86, 22));
			complLabel.setText("Complemento:");
			numLabel = new JLabel();
			numLabel.setBounds(new Rectangle(16, 103, 54, 22));
			numLabel.setText("Numero:");
			endLabel = new JLabel();
			endLabel.setBounds(new Rectangle(15, 73, 64, 23));
			endLabel.setText("Endereço:");
			cpfLabel = new JLabel();
			cpfLabel.setBounds(new Rectangle(15, 46, 38, 22));
			cpfLabel.setText("CPF:");
			nomeLabel = new JLabel();
			nomeLabel.setBounds(new Rectangle(14, 19, 38, 22));
			nomeLabel.setText("Nome:");
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getConfBot(), null);
			jContentPane.add(nomeLabel, null);
			jContentPane.add(cpfLabel, null);
			jContentPane.add(endLabel, null);
			jContentPane.add(numLabel, null);
			jContentPane.add(complLabel, null);
			jContentPane.add(cepLabel, null);
			jContentPane.add(cidadeLabel, null);
			jContentPane.add(bairroLabel, null);
			jContentPane.add(telFixoLabel, null);
			jContentPane.add(telCelLabel, null);
			jContentPane.add(getNomeField(), null);
			jContentPane.add(getCpfField(), null);
			jContentPane.add(getEndField(), null);
			jContentPane.add(getNumField(), null);
			jContentPane.add(getCompField(), null);
			jContentPane.add(getCidadeField(), null);
			jContentPane.add(getBairroField(), null);
			jContentPane.add(getCepField(), null);
			jContentPane.add(getTelFixoField(), null);
			jContentPane.add(getTelCelField(), null);
		}
		return jContentPane;
	}

	/**
	 * This method initializes confBot	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getConfBot() {
		if (confBot == null) {
			confBot = new JButton();
			confBot.setBounds(new Rectangle(138, 203, 106, 23));
			confBot.setText("Confirmar");
			confBot.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					
					ClienteFisico dig = new ClienteFisico();
					dig.setNome(nomeField.getText());
					dig.setCpf(cpfField.getText());
					dig.setEndereco(endField.getText());
					dig.setNumero(numField.getText());
					dig.setComplemento(compField.getText());
					dig.setCidade(cidadeField.getText());
					dig.setBairro(bairroField.getText());
					dig.setCep(cepField.getText());
					dig.setFoneFixo(telFixoField.getText());
					dig.setFoneCel(telCelField.getText());
					
					
					MySql banco = new MySql();
					
					banco.connect();
					banco.insereClienteFisico(dig);				
					banco.disconnect();
				}
			});
		}
		return confBot;
	}

	/**
	 * This method initializes nomeField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getNomeField() {
		if (nomeField == null) {
			nomeField = new JTextField();
			nomeField.setBounds(new Rectangle(64, 20, 231, 20));
		}
		return nomeField;
	}

	/**
	 * This method initializes cpfField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getCpfField() {
		if (cpfField == null) {
			cpfField = new JTextField();
			cpfField.setBounds(new Rectangle(66, 46, 139, 20));
		}
		return cpfField;
	}

	/**
	 * This method initializes endField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getEndField() {
		if (endField == null) {
			endField = new JTextField();
			endField.setBounds(new Rectangle(90, 76, 231, 20));
		}
		return endField;
	}

	/**
	 * This method initializes numField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getNumField() {
		if (numField == null) {
			numField = new JTextField();
			numField.setBounds(new Rectangle(74, 104, 63, 20));
		}
		return numField;
	}

	/**
	 * This method initializes compField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getCompField() {
		if (compField == null) {
			compField = new JTextField();
			compField.setBounds(new Rectangle(239, 105, 82, 20));
		}
		return compField;
	}

	/**
	 * This method initializes cidadeField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getCidadeField() {
		if (cidadeField == null) {
			cidadeField = new JTextField();
			cidadeField.setBounds(new Rectangle(66, 136, 76, 20));
		}
		return cidadeField;
	}

	/**
	 * This method initializes bairroField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getBairroField() {
		if (bairroField == null) {
			bairroField = new JTextField();
			bairroField.setBounds(new Rectangle(188, 137, 69, 20));
		}
		return bairroField;
	}

	/**
	 * This method initializes cepField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getCepField() {
		if (cepField == null) {
			cepField = new JTextField();
			cepField.setBounds(new Rectangle(290, 138, 90, 20));
			cepField.setText("");
		}
		return cepField;
	}

	/**
	 * This method initializes telFixoField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getTelFixoField() {
		if (telFixoField == null) {
			telFixoField = new JTextField();
			telFixoField.setBounds(new Rectangle(101, 167, 86, 20));
		}
		return telFixoField;
	}

	/**
	 * This method initializes telCelField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getTelCelField() {
		if (telCelField == null) {
			telCelField = new JTextField();
			telCelField.setBounds(new Rectangle(237, 164, 94, 20));
		}
		return telCelField;
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		
	}

}  //  @jve:decl-index=0:visual-constraint="-9,10"

Como ficaria o actionPerformed na classe interna?

laudenpower

Normalmente eu nunca coloco classe de eventos junto com classe de apresentação, o que eu faço é separar a lógica de eventos em uma classe diferente, passando o formulário como parâmetro para que dessa forma eu possa tratar os eventos gerados pelo seu componente.

Segue abaixo o código utilizando InnerClass:

JSeuButtonOuItemDeMenu.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                //Faz alguma coisa aqui como criar um formulário
            }
        });
Camila_Matos_Bittenc

Olá…

Muito obrigado pela ajuda, foi muito util…

Resolvi o meu problema da seguinte forma…

JMenuItem novaVenda = new JMenuItem("Venda");
		novaVenda.addActionListener(new java.awt.event.ActionListener() {  
            public void actionPerformed(java.awt.event.ActionEvent evt) {  
                 
            	JInternalFrame reg = new JInternalFrame();
            	reg = new RegistrarServico();
            	reg.setVisible(true);
            	desktop.add(reg); 
            }  
        });

:smiley:

Muito obrigado…

Criado 15 de setembro de 2009
Ultima resposta 18 de set. de 2009
Respostas 4
Participantes 2