Ajuda com manipulaçao de Eventos

5 respostas
johnny_g3p

Galerinha preciso de uma ajuda de vcs, estou estudando java e fazando alguns exercicos, fiz o código abaixo afim de estudar eventos mais meus botões não respondem, e como sou iniciante gostaria de uma ajuda de vocês tambem sobre layout do código e comentários e alguma coisa a mais que me ajudasse evoluir wlw galera.

import java.awt.event.*;

import javax.swing.*;
public class Formulario1 implements ActionListener {
	
	String x = "Nenhum botão precionado";
	
	JFrame form = new JFrame();
	JPanel painel1 = new JPanel();
	
	JLabel idaluno = new JLabel("Códido do Aluno");
	JTextField txtidaluno = new JTextField("");
	JLabel endereco = new JLabel("Endereço");
	JTextField txtendereco = new JTextField("");
	JLabel cep = new JLabel("Cep");
	JTextField txtcep = new JTextField("");
	JLabel cidade = new JLabel ("Cidade");
	JTextField txtcidade = new JTextField ("");
	JTextField busca = new JTextField("");
	JButton alterar = new JButton("Alterar");
	JButton incluir = new JButton("Incluir");
	JLabel evento = new JLabel(x);
	JButton buscar = new JButton("buscar");
	JLabel estado = new JLabel ("Estado");
	JTextField txtest = new JTextField("");
	JLabel pais = new JLabel ("Pais");
	JTextField txtpais = new JTextField("");
	JButton excluir = new JButton("Excluir");
	
	
	
	public static void main(String[] args) {
		Formulario1 a = new Formulario1();
		a.configuracao();
		
		
	}

	
	   public void configuracao() {
	
		//Criando a frame
		
		form.setSize(500,500);
		form.setTitle("Formulario");
		form.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// Criando o Painel 
		
		painel1.setLayout(null);
		
		//Criando os Txt Field e Labels
		
		
		//Criando idaluno
		
		idaluno.setBounds(10,10,100,20);
		painel1.add(idaluno);
		
		txtidaluno.setBounds(110,10,50,20);
		painel1.add(txtidaluno);
		//Criando Endereço
		
		endereco.setBounds(10,30,100,20);
		painel1.add(endereco);
		
		txtendereco.setBounds(110,30,200,20);		
		painel1.add(txtendereco);
	    //Criando CEP
		
		cep.setBounds(10,50,100,20);
		painel1.add(cep);
		
		txtcep.setBounds(110,50,100,20);
		painel1.add(txtcep);		
		//Criando Cidade
		
		cidade.setBounds(10,70,100,20);
		painel1.add(cidade);
		
		txtcidade.setBounds(110,70,80,20);
		painel1.add(txtcidade);
		// Ciando Estado
		
		estado.setBounds(10,90,100,20);
		painel1.add(estado);
		
		txtest.setBounds(110, 90, 20,20);
		painel1.add(txtest);
		
		//Criando Pais
		
		pais.setBounds(10,110,100,20);
		painel1.add(pais);
		
		txtpais.setBounds(110, 110, 80,20);
		painel1.add(txtpais);
		
	    //Criando os Botões
		//botão Alterar
		
		alterar.setBounds(10,150,100,20);
		painel1.add(alterar);
		
		//botão excluir
		
		excluir.setBounds(115, 150, 100, 20);
		painel1.add(excluir);
		
		
		// botão incluir
		
		incluir.setBounds(220,150,100,20);
		painel1.add(incluir);
		
		
		
		//botão e caixa de texto buscar
		
		busca.setBounds(10, 180, 100, 20);
		painel1.add(busca);
		
		buscar.setBounds(110,180,100,20);
		painel1.add(buscar);
		
		
		
		
		//Label de evento
		
		evento.setBounds(150, 220, 100, 20);
		painel1.add(evento);
		
		
		//adicionando o painel ao container (frame)
		form.getContentPane().add(painel1);
		form.add(painel1);
		form.setVisible(true);
		
		
		//Adicionando o ouvinte
		incluir.addActionListener(this);
		excluir.addActionListener(this);
		alterar.addActionListener(this);
		
					
		}

	public void actionPerformed(ActionEvent e) {
		Object o = e.getSource();
		if(o == incluir){
			x = "incluir";
		}
		if (o== excluir){
			x= "excluido";
					}
		if (o== alterar){
			x= "alterado";
		}
			
	}
		
	}

5 Respostas

johnny_g3p

e ai galera preciso de uma ajuda niguem ai?

discorpio

Boa noite Johnny_g3p

Voce fez tudo certo e esqueceu de um pequeno detalhe.

Para que os seus botões acione o método ActionPerformed da própria classe, voce precisa adicionar os listeners de eventos deles a classe, desta forma.

......
 JButton alterar = new JButton("Alterar");
 // Adiciona o Listener de eventos.
 alterar.addActionListener(this);
  
 JButton incluir = new JButton("Incluir");
 incluir.addActionListener(this);
 ....

Voce tem que fazer isto em cada componente que disparar qualquer listener de evento.

johnny_g3p

Intão mais esse comando está na linha 140 até 143, por isso não estou entendendo porque não funciona os botões.

Marcelo_de_Andrade

Fala johnny_g3p! Beleza?
O problema está aqui:

public void actionPerformed(ActionEvent e) {
		Object o = e.getSource();
		if(o == incluir){
			x= "inserido";
		}
		if (o== excluir){
			x= "excluido";
					}
		if (o== alterar){
			x= "alterado";
		}
			
	}

Você está atribuindo um novo valor a variável x porém isso não vai fazer o label mudar somente dessa forma, pois ele já está construído. Para isso você deve acessar o método setText do JLabel para que o texto dele seja alterado:

public void actionPerformed(ActionEvent e) {
		Object o = e.getSource();
		if(o == incluir){
			//x= "inserido";
                         evento.setText("incluir");
		}
		if (o== excluir){
			//x= "excluido";
                          evento.setText("excluir") ;
					}
		if (o== alterar){
			//x= "alterado";
                         evento.setText("alterado") ;
		}
			
	}

PS: Código editado, faltava os ;

Espero ter ajudado. E se falei alguma besteira, por favor me corrijam.

johnny_g3p

era isso mesmo troquei para setText e deu tudo certo wlw pela ajuda galera

Criado 27 de setembro de 2011
Ultima resposta 28 de set. de 2011
Respostas 5
Participantes 3