Declarar componentes Swing dinamicamente

2 respostas
PBNETO

Bom dia Pessoal!

No meu projeto, eu preciso de uma rotina que adiciona jTextFields dinamicamente…
Se for 1, tudo bem:

System.out.println("Adicionando JTextField");
        JTextField jTextField1 = new javax.swing.JTextField();
        jTextField1.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jTextField1.setText("Texto Desejado");
        jTextField1.setToolTipText("Hint Desejado");
        jTextField1.setSize(200,22);
        super.add(jTextField1);

Porém, essa quantidade é dinâmica, e eu nunca saberei quantos jTextFields eu terei que DECLARAR pra adicionar!!
Eu poderia colocar aquele código dali de cima dentro de um loop, mas ainda não resolveria, pois só criará um jTextField (o jTextField1)…

Será que tem como eu ir declarando esses componentes dinamicamente?
Por exemplo, se fosse 3 deles, a rotina teria que ficar:

JTextField jTextField1 = new javax.swing.JTextField();
        JTextField jTextField2 = new javax.swing.JTextField();
        JTextField jTextField3 = new javax.swing.JTextField();

Senão, alguém tem outra idéia?

Obrigado!

2 Respostas

ViniGodoy

Você pode criar um:

List<JTextField> list = new ArrayList<JTextField>();

Só corrigindo, aquele código num loop criaria vários JTextFields. Na verdade, 1 para cada new dado. Principalmente se vc adiciona-lo no JFrame logo em seguida.
O problema é que vc não teria uma maneira fácil de referenciar os JTextFields criados depois. Por isso criar o ArrayList é prático.

PBNETO

Boa idéia!

Vou tentar aqui…
Muito obrigado!

Criado 20 de julho de 2008
Ultima resposta 20 de jul. de 2008
Respostas 2
Participantes 2