JTextfield multiplo

7 respostas
R

ola, é o seguinte, tenho um textfield, mais ou menos assim...

jTextField1.setText("");
                    jTextField2.setText("");
                    jTextField3.setText("");
                    jTextField4.setText("");
                    jTextField5.setText("");
                    jTextField6.setText("");
                    jTextField7.setText("");
                    jTextField8.setText("");
                    jTextField10.setText("");
                    jTextField11.setText("");

                    jTextField12.setText("");
                    jTextField13.setText("");
                    jTextField14.setText("");
                    jTextField15.setText("");
                    jTextField16.setText("");
                    jTextField17.setText("");
                    jTextField18.setText("");
                    jTextField19.setText("");
                    jTextField20.setText("");
                    jTextField21.setText("");
                    jTextField22.setText("");
                    jTextField23.setText("");
                    jTextField24.setText("");
                    jTextField25.setText("");

                    //captura dos textfields.. cartela ja selecionada...  excecao se nao estiver selecionada...
                    jTextField26.setText("");
                    jTextField27.setText("");
                    jTextField28.setText("");
                    jTextField29.setText("");
                    jTextField30.setText("");
                    jTextField31.setText("");
                    jTextField32.setText("");
                    jTextField33.setText("");
                    jTextField34.setText("");
                    jTextField35.setText("");

                    jTextField36.setText("");
                    jTextField37.setText("");
                    jTextField38.setText("");
                    jTextField39.setText("");
                    jTextField40.setText("");
                    jTextField41.setText("");
                    jTextField42.setText("");
                    jTextField43.setText("");
                    jTextField44.setText("");
                    jTextField45.setText("");
                    jTextField46.setText("");
                    jTextField47.setText("");
                    jTextField48.setText("");
                    jTextField49.setText("");

                    jTextField1.setBackground(Color.WHITE);
                    jTextField2.setBackground(Color.WHITE);
                    jTextField3.setBackground(Color.WHITE);
                    jTextField4.setBackground(Color.WHITE);
                    jTextField5.setBackground(Color.WHITE);
                    jTextField6.setBackground(Color.WHITE);
                    jTextField7.setBackground(Color.WHITE);
                    jTextField8.setBackground(Color.WHITE);
                    jTextField10.setBackground(Color.WHITE);
                    jTextField11.setBackground(Color.WHITE);

                    jTextField12.setBackground(Color.WHITE);
                    jTextField13.setBackground(Color.WHITE);
                    jTextField14.setBackground(Color.WHITE);
                    jTextField15.setBackground(Color.WHITE);
                    jTextField16.setBackground(Color.WHITE);
                    jTextField17.setBackground(Color.WHITE);
                    jTextField18.setBackground(Color.WHITE);
                    jTextField19.setBackground(Color.WHITE);
                    jTextField20.setBackground(Color.WHITE);
                    jTextField21.setBackground(Color.WHITE);
                    jTextField22.setBackground(Color.WHITE);
                    jTextField23.setBackground(Color.WHITE);
                    jTextField24.setBackground(Color.WHITE);
                    jTextField25.setBackground(Color.WHITE);

                    //captura dos textfields.. cartela ja selecionada...  excecao se nao estiver selecionada...
                    jTextField26.setBackground(Color.WHITE);
                    jTextField27.setBackground(Color.WHITE);
                    jTextField28.setBackground(Color.WHITE);
                    jTextField29.setBackground(Color.WHITE);
                    jTextField30.setBackground(Color.WHITE);
                    jTextField31.setBackground(Color.WHITE);
                    jTextField32.setBackground(Color.WHITE);
                    jTextField33.setBackground(Color.WHITE);
                    jTextField34.setBackground(Color.WHITE);
                    jTextField35.setBackground(Color.WHITE);

                    jTextField36.setBackground(Color.WHITE);
                    jTextField37.setBackground(Color.WHITE);
                    jTextField38.setBackground(Color.WHITE);
                    jTextField39.setBackground(Color.WHITE);
                    jTextField40.setBackground(Color.WHITE);
                    jTextField41.setBackground(Color.WHITE);
                    jTextField42.setBackground(Color.WHITE);
                    jTextField43.setBackground(Color.WHITE);
                    jTextField44.setBackground(Color.WHITE);
                    jTextField45.setBackground(Color.WHITE);
                    jTextField46.setBackground(Color.WHITE);
                    jTextField47.setBackground(Color.WHITE);
                    jTextField48.setBackground(Color.WHITE);
                    jTextField49.setBackground(Color.WHITE);

mas fiz uma troca aqui no código agora os textfields vao de 76 a 147, tenho várias alterações, alguém sabe como usar um laço ou loop para nomear todos ou um método em que eu possa usar o nome do textfield como uma variavel, onde acrescente números...

para simplificar.

grato.

servirá para outras coisas também

como em um determinado sorteio... é para um jogo de bingo...

tenho que usar toda a vez o código por causa do textfield que muda...

//4

        y2 = 0;
        lacowhile2 = 0;
        while (y2 == 0 && lacowhile2 < 99) {
            lacowhile2 = lacowhile2 + 1;

            x2 = Math.random() * 99;
            b2 = (int) x2;


            if (model2.contains(b2)) {
                x2 = Math.random() * 99;
                b2 = (int) x2;
            } else {
                c3 = c3 + 1;
                model2.add(c3, b2);
             [color=red]   jTextField4.setText("" + b2);[/color]
                y2 = y2 + 1;
                lacowhile2 = 100;

            }
        }

o que muda é só o textfield, portanto se com um método eu pudesse incluir os 147 ficaria mais fácil. grato.

7 Respostas

R

e aí ninguém ousa nada?

é como laço de for que eu queria fazer, onde muda o nome dos textfields…

jTextField2.setText("");

jTextField3.setText("");

jTextField4.setText("");

jTextField5.setText("");

jTextField6.setText("");

jTextField7.setText("");

jTextField8.setText("");

jTextField10.setText("");

jTextField11.setText("");
jTextField12.setText("");
                jTextField13.setText("");
                jTextField14.setText("");
                jTextField15.setText("");
ViniGodoy

Por que você não cria um array de JTextFields?

E aí vc pode fazer for normalmente.

InicianteJavaHenriqu

for(byte i=0; i<=49; i++)
jTextField + i.setText("");

Será que funciona???

Ironlynx

Além de um for, seria bom por algum método para limpar esses campos de uma forma mais genérica, algo + ou - como:

public 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) { limparCampos((Container) component); } } }
Só para evitar aquele bando de linhas de setText…aliás dá para evitar aqueles setBackgrounds todos também.

ViniGodoy
<blockquote><div class="quote-author">InicianteJavaHenrique:</div>for(byte i=0; i<=49; i++)

jTextField + i.setText("");

Será que funciona???</blockquote>

Não. Você não pode concatenar no código fonte. E o compilador não irá rodar esse for.

R

segue o projeto em jar. pretendo melhorar aceito idéias. está funcionando, mas ouvi que falta mais interatividade, como marcar cartelas, ou como video bingo, etc.

o fiz manualmente, mas pretendo estudar este assunto, pois é útil, as vezes posso até reaplicar no código aqui para diminui-lo pois trabalhamos com OO, então por causa do textfields, tenho que reescrever o sorteio a cada textfield… deve ter uma forma prática.

gostei do arrays de textfields do viny, vou tentar para ver se funciona…

agora estes projetos fazem parte de um tcc, que estou fazendo no senai-ctai, em florianópolis.
serão 7 jogos.

agradeço a todos. pretendo postar meus resultados e aguardo qualquer outra dica, ou teste.

valeu.

opniem,comentem,elogiem, o bingo em anexo que segue.

H

Talvez um ArrayList seja mais adequado, já que quer mudar em tempo de execução.

Criado 5 de abril de 2012
Ultima resposta 22 de mai. de 2012
Respostas 7
Participantes 5