GARANTIR DESCONTO

Fórum Limpar campos no jTextField #566008

09/04/2009

0

Pessoal, alguém sabe como fazer para limpar conteúdo de um campo JTextField? O que acontece é o seguinte, tenho dois campos um para senha e um para o login do usuário, e tem um botão que é para limpar os campos. Alguém sabe de algum método para fazer essa limpeza? :o
Ilidio Abreu

Ilidio Abreu

Responder

Posts

09/04/2009

Carlos Heuberger

Oi,
jTextField.setText(null);
[]]]
Responder

Gostei + 0

09/04/2009

Wolliton Silva

Ow... a pergunta ja foi respondida mais eu acho que vc não precisava entrar postar esse pergunta no Java Avançado, acho que o Java Basico daria conta muito bem. ---- Wolliton
Responder

Gostei + 0

09/04/2009

Wolliton Silva

Mensagem movida de "Java Avançado" para "GUI - (Applets, Swing, SWT, etc)". [quote="wolliton"]Ow... a pergunta ja foi respondida mais eu acho que vc não precisava entrar postar esse pergunta no Java Avançado, acho que o Java Basico daria conta muito bem. ---- Wolliton
Responder

Gostei + 0

09/04/2009

Eli Lopes

No caso de precisar limpar várias caixas de textos, é só usar um método utilitário de limpeza geral:
import java.awt.Component;
import java.awt.Container;
import javax.swing.JFormattedTextField;
import javax.swing.JTextField;

public class Utils {
	public static void limparCampos(Container container) {
		Component components[] = container.getComponents();
		for (Component component : components) {
			if (component instanceof JFormattedTextField) {
				JFormattedTextField field = (JFormattedTextField) component;
				field.setValue(null);
			} else if (component instanceof JTextField) {
				JTextField field = (JTextField) component;
				field.setText("");
			} else if (component instanceof JTextArea) {
				JTextArea area = (JTextArea) component;
				area.setText("");
			}
			else if (component instanceof Container) {
				limparCamposNoContainer((Container) component);
			}
		}
	}
}

Os objetos são adicionados em uma coleção (vetor), em seguida são analisados e limpos de acordo com a instância. A ordem dos IFs não pode ser mudada, ja que JFormattedTextField também é uma instância do JTextField, com a mudança a limpeza seria errada apagando além do conteúdo a mascara do JFormattedTextField. Um exemplo de Form com uso do método de limpeza com 10 JTextField e 1 JFormattedTextField:
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class TesteUtils extends JFrame {
	private static long serialVersionUID = 1L;

	public class ResetAction extends AbstractAction {
		public ResetAction() {
			putValue(Action.NAME, "Reset");
			putValue(Action.SHORT_DESCRIPTION, "Limpa os campos do form");
		}

		public void actionPerformed(ActionEvent e) {
			Object source = e.getSource();
			if (source instanceof JComponent) {
				JComponent component = (JComponent) source;
				Container form = component.getTopLevelAncestor();
				Utils.limparCampos(form);
			}
		}
	}

	public TesteUtils() {
		super(TesteUtils.class.toString());
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		JPanel panel = new JPanel(new GridLayout(12, 1));
		for (int i = 0; i < 10; i++) {
			panel.add(new JTextField());
		}
		JFormattedTextField field = new JFormattedTextField(
				new SimpleDateFormat("dd/mm/yyyy"));
		field.setValue(new Date());
		panel.add(field);
		JButton button = new JButton(new TesteUtils.ResetAction());
		panel.add(button);
		add(panel);
		pack();
	}

	public static void main(String[] args) {
		new TesteUtils().setVisible(true);
	}
}
ajude por -> dudaskank
Responder

Gostei + 0

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

Aceitar