Botao Limpar

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

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

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

Até mais!

[quote=davidbuzatto]Vc precisa registrar o ouvinte nos seus botões, vc não registrou nenhum.

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

Até mais![/quote]

Mas onde eu adicionoeste exemplo?

Eu não entendi.

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

1 curtida

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

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

Abraço!

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…

Galaera finalmente consegui com todas as dicas de vc’s

Abraços

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
}
}