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.
Limpando todos os campos (JTextField)
10 Respostas
opa blza cara?
public void acaobotaolimpa(){
jTextField1.setText("");
jTextFiled2.setText("");
}
eu sempre faço assim cara, depois chamo este metodo para no meu Jbuttom
ops tava esquecendo neste caso viz para dosi JTextFields, mas isto vai depender do teu codigo e claro…
olá maykoninfo…
Esse comando eu já sei…eu quero justamento é sair disso, ficar setando um por um.
valeu
somos dois então!!..
olá maykoninfo…
Esse comando eu já sei…eu quero justamento é sair disso, ficar setando um por um.
valeu
:lol: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)
Obrigado para aqueles q responderam…já resolvi!
flw
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
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++){
//???
}
}
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);
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!