Botao Limpar

7 respostas
tiago466

Ola Galera !!

Eu criei o seguinte formulario:

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class LayoutTeste2 extends JFrame{
	
	//Declarando os objetos do fomulario
	private JLabel l1, l2, l3, l4;
	private	JTextField t2, t3, t4;
	private JButton bOk, bLimpar, bFechar;
	private JPanel painel1, painel2, painel3, painel4;
	private Container janela;
	public LayoutTeste2(){
		super("Cadastro Produtos");
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		
		//Rotulo de Titulos
		l1 = new JLabel("Cadastro Produtos");
		l1.setForeground(new java.awt.Color(51, 0, 255));
		l1.setFont(new java.awt.Font("Tahoma", 1, 36));
		
		//Rotulos para campos
		l2 = new JLabel("Código");
		l2.setForeground(new java.awt.Color(0, 0, 255));
		
		l3 = new JLabel("Descrição");
		l3.setForeground(new java.awt.Color(0, 0, 255));
		
		l4 = new JLabel("Preço");
		l4.setForeground(new java.awt.Color(0, 0, 255));
		
		//Caixa de textos para os campos citados acima
		t2 = new JTextField(5);
		t3 = new JTextField(10);
		t4 = new JTextField(10);
		
		//Botõe para eventos
		bOk = new JButton("Cadastrar");
		bLimpar = new JButton("Limpar");
		bFechar = new JButton("Fechar");
		
		//Paineis para layout
		painel1 = new JPanel();
		painel2 = new JPanel();
		painel3 = new JPanel();
		painel4 = new JPanel();
		
		//Desenvolvimento para a jenela
		janela = getContentPane();
		janela.setLayout(new BorderLayout());
		
		//Primeira definção de estrutura de layout
		painel1.setLayout(new FlowLayout());
		painel2.setLayout(new GridLayout(3,1));
		painel3.setLayout(new GridLayout(3,1));
		painel4.setLayout(new FlowLayout());
				
		//Adicionando a label de titulo no painel
		painel1.add(l1);
		
		//Adicionando as rotulos de campos no painel
		painel2.add(l2);
		painel2.add(l3);
		painel2.add(l4);
		
		//Adicionando as caixas de texto no painel
		painel3.add(t2);
		painel3.add(t3);
		painel3.add(t4);
		
		//Adcionando botões no painel
		painel4.add(bOk);
		painel4.add(bLimpar);
		painel4.add(bFechar);
		
		//Segunda definição de estrutura de layout
		janela.add(painel1, BorderLayout.NORTH);
		janela.add(painel2, BorderLayout.WEST);
		janela.add(painel3, BorderLayout.CENTER);	
		janela.add(painel4, BorderLayout.SOUTH);
		
		pack();
	}
	public static void main(String[] args){
		LayoutTeste2 LayoutTeste2 = new LayoutTeste2();
		LayoutTeste2.show();
	}
	class bOK implements ActionListener{
		public void actionPerformed(ActionEvent e){
			//Colocar o código aqui.
		}
	}
	class bFechar implements ActionListener{
		public void actionPerformed(ActionEvent e){
        t2.grabFocus();
        }
    }

	class T2 implements FocusListener{
		public void focusGained(FocusEvent e){
			t2.setText("");
			t3.setText("");
			t4.setText("");
		}
    public void focusLost(FocusEvent e){
        String s = t2.getText();
        if (s.length() == 0){
            t3.setEnabled(false);
            t4.setEnabled(false);
            bOk.setEnabled(false);
            }
        else{
            t3.setEnabled(true);
            t4.setEnabled(true);
            bOk.setEnabled(true);
            t3.grabFocus();
            }
        }
    }
}

…mas o botao limpar nao esta funcionando, o que qu tem de errado

Me ajudem

Grato

7 Respostas

davidbuzatto

Vc precisa registrar o ouvinte nos seus botões, vc não registrou nenhum.

btn.addActionListener... btn.addFocusListener...

Até mais!

tiago466

davidbuzatto:
Vc precisa registrar o ouvinte nos seus botões, vc não registrou nenhum.

btn.addActionListener... btn.addFocusListener...

Até mais!

Mas onde eu adicionoeste exemplo?

Eu não entendi.

Polastrinho

Nao so mto bom em java mas pelo que entendi pode ser limpo o campo com o comando setText.

exemplo :

exemplo.setText("");   //exemplo ali seria o nome do jTextField a ser limpo.

coloque este comando dentro do botao limpar dai :smiley:

abraços

Marck

Dá uma olhada no código do nosso amigo aqui:

http://www.guj.com.br/posts/list/73860.java

Abraço!

nana_ps

Oiee…

creio que assim vai funcionar…

bLimpar.addActionListener(new ActionListener(){ public void actionPerformed (ActionEvent ae){ t2.setText(""); t3.setText(""); t4.setText(""); } });

vc coloca na construtora, assim estará adicionando um evento para o botão

xau…

tiago466

Galaera finalmente consegui com todas as dicas de vc’s

Abraços

Marky.Vasconcelos

Outra coisa, você não precisa criar uma classe para cada botão, o ActionEvent tem o método getSource() que retorna o Component que disparou o evento.
Então você compara se é o botão e manda faz o método certo.
Algo assim

JButton meuBotao1;//Você inicializou corretamente e o resto
JButton meuBotao2;//Você inicializou corretamente e o resto
@Override
public void actionPerformed(ActionEvent e){
if(e.getSource() == meuBotao1){
//Faz o que o botão 1 tem que fazer
}
if(e.getSource() == meuBotao2){
//Faz o que o botão 2 tem que fazer
}
}
Criado 26 de outubro de 2007
Ultima resposta 21 de nov. de 2007
Respostas 7
Participantes 6