Limpando todos os campos (JTextField)

10 respostas
jmendes

Olá pessoal…
Existe algum comando que limpa de uma só vez todos os campos (JTextField) do frame? Tá por fora ficar setando cada campo p/ limpar.

10 Respostas

maykoninfo

opa blza cara?

public void acaobotaolimpa(){

jTextField1.setText("");

jTextFiled2.setText("");

}

eu sempre faço assim cara, depois chamo este metodo para no meu Jbuttom
maykoninfo

ops tava esquecendo neste caso viz para dosi JTextFields, mas isto vai depender do teu codigo e claro…

jmendes

olá maykoninfo…
Esse comando eu já sei…eu quero justamento é sair disso, ficar setando um por um.
valeu

maykoninfo

somos dois então!!..

jmendes:
olá maykoninfo…
Esse comando eu já sei…eu quero justamento é sair disso, ficar setando um por um.
valeu
:smiley: :lol:

Grinvon

Isso é bem fácil, veja o programa que criei para você…

package org.scwcd;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

/**
 * User: grinvon
 * Date: 10/05/2006
 * Time: 02:18:50
 *
 * @author Inocêncio
 */
public class TesteSwing extends JFrame {

    private JTextField text1 = new JTextField("BTN 1");
    private JTextField text2 = new JTextField("BTN 2");
    private JTextField text3 = new JTextField("BTN 3");

    private JButton btnOK = new JButton();

    public TesteSwing() {

        super("Janela Teste");

        btnOK.setAction(acaoBotao());

        getContentPane().setLayout(new FlowLayout());
        getContentPane().add(text1);
        getContentPane().add(text2);
        getContentPane().add(text3);
        getContentPane().add(btnOK);

        setSize(new Dimension(300,300));
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);
    }

    public Action acaoBotao() {

        Action acao = new AbstractAction() {

            public void actionPerformed(ActionEvent event) {

                //limpa os campos

                for (int i=0; i < getContentPane().getComponentCount(); i++) {
                    //varre todos os componentes

                    Component c = getContentPane().getComponent(i);

                    if (c instanceof JTextField) {
                        //apaga os valores
                        JTextField field = (JTextField) c;
                        field.setText("");
                        System.out.println("apagando campo " + i);
                    }
                }
            }
        };

        acao.putValue(Action.NAME, "Limpa Campos");

        return acao;
    }



    public static void main(String[] args) {
        new TesteSwing();
    }
}

Basta pensar como OO, e o Swing tem métodos que trabalham para isso, para obtermos as nossas compentens e fazer o que quisermos com elas. Enjoy it 8)

jmendes

Obrigado para aqueles q responderam…já resolvi!
flw

Metallica

Grinvon:
Isso é bem fácil, veja o programa que criei para você…

package org.scwcd;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

/**
 * User: grinvon
 * Date: 10/05/2006
 * Time: 02:18:50
 *
 * @author Inocêncio
 */
public class TesteSwing extends JFrame {

    private JTextField text1 = new JTextField("BTN 1");
    private JTextField text2 = new JTextField("BTN 2");
    private JTextField text3 = new JTextField("BTN 3");

    private JButton btnOK = new JButton();

    public TesteSwing() {

        super("Janela Teste");

        btnOK.setAction(acaoBotao());

        getContentPane().setLayout(new FlowLayout());
        getContentPane().add(text1);
        getContentPane().add(text2);
        getContentPane().add(text3);
        getContentPane().add(btnOK);

        setSize(new Dimension(300,300));
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);
    }

    public Action acaoBotao() {

        Action acao = new AbstractAction() {

            public void actionPerformed(ActionEvent event) {

                //limpa os campos

                for (int i=0; i < getContentPane().getComponentCount(); i++) {
                    //varre todos os componentes

                    Component c = getContentPane().getComponent(i);

                    if (c instanceof JTextField) {
                        //apaga os valores
                        JTextField field = (JTextField) c;
                        field.setText("");
                        System.out.println("apagando campo " + i);
                    }
                }
            }
        };

        acao.putValue(Action.NAME, "Limpa Campos");

        return acao;
    }



    public static void main(String[] args) {
        new TesteSwing();
    }
}

Basta pensar como OO, e o Swing tem métodos que trabalham para isso, para obtermos as nossas compentens e fazer o que quisermos com elas. Enjoy it 8)

Nossa valeu cara!

Eu tava quase chegando lá, o problema é que eu tava usando jFrame.getComponents(), dai ele só retorna um componente que é um RootPane ou algo assim. Dai não dava mesmo, mas a conversão e a verificação eu tava fazendo certinho.

Tão bom quando você ver que você aprendeu as coisas! OO é demais!

Valeu! Isso vai me poupar um grande trabalho

PItapirema

Grinvon,

Estou utilizando o seu codigo, porem tenho um problemas que nao consigo solucionar!

quando tenho um JPanel, o ‘for’ não lista oque esta dentro dele!
Então coloquei um if (c instanceof JPanel) .

A pergunta é, com faço para apartir desta posição ele listar oque esta dentro do recipiente JPanel ?

Tentei algo como:

if (c instanceof JPanel) {

for (int j = 0; j < jPanel1.countComponents(); j++){

//???

}

}
I

putz… valew cara… fazia tempo que eu tava tentando fazer alguma coisa que fosse utilizavel por todos os meus forms …
Sempre que eu precisava limpar os dados da tela eu ia limpando 1 por 1… hehehe
eu adaptei um pouco sua classe e joguei ela num pacote de "utilitarios" e sempre chamo quando preciso limpar os campos…

VALEW!
segue minha alteracao:

public void LimpaTela(JInternalFrame Frame) {     
            //limpa os campos     
            for (int i=0; i < Frame.getContentPane().getComponentCount(); i++) {   
                //varre todos os componentes     
                Component c = Frame.getContentPane().getComponent(i);     
                if (c instanceof JTextField) {                           
                    JTextField field = (JTextField) c;   
                    field.setText("");                      
                    }   
                }   
            }

quando preciso limpar so dou um:

new Utilitarios().LimpaTela(this);
cassioliveira

Grinvon:
Isso é bem fácil, veja o programa que criei para você…

package org.scwcd;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

/**
 * User: grinvon
 * Date: 10/05/2006
 * Time: 02:18:50
 *
 * @author Inocêncio
 */
public class TesteSwing extends JFrame {

    private JTextField text1 = new JTextField("BTN 1");
    private JTextField text2 = new JTextField("BTN 2");
    private JTextField text3 = new JTextField("BTN 3");

    private JButton btnOK = new JButton();

    public TesteSwing() {

        super("Janela Teste");

        btnOK.setAction(acaoBotao());

        getContentPane().setLayout(new FlowLayout());
        getContentPane().add(text1);
        getContentPane().add(text2);
        getContentPane().add(text3);
        getContentPane().add(btnOK);

        setSize(new Dimension(300,300));
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);
    }

    public Action acaoBotao() {

        Action acao = new AbstractAction() {

            public void actionPerformed(ActionEvent event) {

                //limpa os campos

                for (int i=0; i < getContentPane().getComponentCount(); i++) {
                    //varre todos os componentes

                    Component c = getContentPane().getComponent(i);

                    if (c instanceof JTextField) {
                        //apaga os valores
                        JTextField field = (JTextField) c;
                        field.setText("");
                        System.out.println("apagando campo " + i);
                    }
                }
            }
        };

        acao.putValue(Action.NAME, "Limpa Campos");

        return acao;
    }



    public static void main(String[] args) {
        new TesteSwing();
    }
}

Basta pensar como OO, e o Swing tem métodos que trabalham para isso, para obtermos as nossas compentens e fazer o que quisermos com elas. Enjoy it 8)

Cara ajudou muito aqui. Código bem direto e me atendeu perfeitamente. Valeu!

Vou usar um trecho mas faço a citação nos comentários. Abraço!

Criado 10 de maio de 2006
Ultima resposta 15 de set. de 2013
Respostas 10
Participantes 7