Metodo getComponents() tratamento

8 respostas
Alisson1

Olá

Tenho uma grande duvida, estou capturando em forma de um array de Component com o metodo getComponents(). Consigo manipular dentro do que se oferece em um Component . Gostaria de poder tratar metodos como gettext… etc
Como faço para acrescer a um “Component” caracteristica de um JTextComponente? Por exemplo.

8 Respostas

sdaniel

A principio vc terá que criar um array para armazenar este componenetes, e este terão de ser do tipo genérico ou seja conter este método.

Alisson1

leia novamente com atenção!

sdaniel

Verifica estes exemplos… pode esclarecer… uma parte deste problema…

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

http://javafree.uol.com.br/artigo/875374/Verificar-todos-os-campos-de-texto-em-um-painel.html

Alisson1

vlw velho… resolvido

fico assim…

package testeSwing;

import java.awt.Component;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;
import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JTextField;
public class VerificaCamposTexto extends JFrame {

private static final long serialVersionUID = 1L;

private JButton btnVerificar;
public VerificaCamposTexto() {

super(Limpa Campos de Texto);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setSize(300, 300);

setLayout(new GridLayout(6,2));
for (int i = 0; i < 5; i++) {  
     add(new JLabel("Campo " + i));  
     add(new JTextField());  
  }  
  btnVerificar = new JButton("Verificar Campos");  
  add(new JLabel());  
  add(btnVerificar);  

  btnVerificar.addActionListener(new ActionListener() {  

     @Override  
     public void actionPerformed(ActionEvent e) {  
        //Todos os componentes do Painel do Frame  
        Component components[] = getContentPane().getComponents();  
        //Para cada componente  
        for (int i = 0; i < components.length; i++) {  
           //É campo de texto?  
           if (components[i] instanceof JTextField) {  
              //Está preenchido?  
              if (((JTextField) components[i]).getText().isEmpty()) {  
                 //Não, então exibo mensagem de erro  
                 JOptionPane.showMessageDialog(null,  
                       "Preencher todos os campos");  
                 break;  
              }  
           }  
        }  
     }  

  });

}

public static void main(String[] args) {

new VerificaCamposTexto().setVisible(true);

}

}
ViniGodoy

Oi. Sempre que postar códigos, coloque-os envoltos pela tag code. Caso contrário, fica difícil de ler.

seu código aqui
Alisson1
package testeSwing; 

import java.awt.Component; 
import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JOptionPane; 
import javax.swing.JTextField; 

public class VerificaCamposTexto extends JFrame { 
private static final long serialVersionUID = 1L; 
private JButton btnVerificar; 

public VerificaCamposTexto() { 
super("Limpa Campos de Texto"); 
setDefaultCloseOperation(EXIT_ON_CLOSE); 
setSize(300, 300); 
setLayout(new GridLayout(6,2)); 

for (int i = 0; i < 5; i++) { 
add(new JLabel("Campo " + i)); 
add(new JTextField()); 
} 
btnVerificar = new JButton("Verificar Campos"); 
add(new JLabel()); 
add(btnVerificar); 

btnVerificar.addActionListener(new ActionListener() { 

@Override 
public void actionPerformed(ActionEvent e) { 
//Todos os componentes do Painel do Frame 
Component components[] = getContentPane().getComponents(); 
//Para cada componente 
for (int i = 0; i < components.length; i++) { 
//É campo de texto? 
if (components[i] instanceof JTextField) { 
//Está preenchido? 
if (((JTextField) components[i]).getText().isEmpty()) { 
//Não, então exibo mensagem de erro 
JOptionPane.showMessageDialog(null, 
"Preencher todos os campos"); 
break; 
} 
} 
} 
} 

}); 

} 

public static void main(String[] args) { 
new VerificaCamposTexto().setVisible(true); 
} 
}

isso ae!

ViniGodoy

Eita. Teu código é reto assim mesmo? :shock:

Alisson1
public void setComponetesEnable(Container panel){
        Component componentes[] = new Component[panel.getComponentCount()];
        componentes =  panel.getComponents();
        for(int i = 0; i <= panel.getComponentCount(); i++){
            System.out.println("\n Componente: "+ componentes[i].getClass());
            if(componentes[i] instanceof JTextComponent){
                ((JTextComponent)componentes[i]).setEditable(true);
                System.out.println("Classe: "+ componentes[i].getClass().getSimpleName());
            }
            if(componentes[i] instanceof JComponent){
                ((JComponent)componentes[i]).setEnabled(true);
                System.out.println("Classe: "+ componentes[i].getClass().getSimpleName());
            }
        }
    }

assim chefe? resumido, fica melhor pra entender

Criado 10 de fevereiro de 2010
Ultima resposta 10 de fev. de 2010
Respostas 8
Participantes 3