Dúvida de principiante com JFrame e modificação de jtextArea em outra classe.[resolvido]

5 respostas
S

Caros,

Minha dúvida é bem de iniciante mesmo, estou tendo algumas dificuldades, venho da programação procedural e orientada a eventos, então estou sofrendo um pouco para me adaptar com o mundo da orientação a objeto, mas estou gostando bastante. É o seguinte, Tenho duas Classes, a Classe Prova (onde fica meu main()) e uma Classe JFramePr(que é um JFrame)

Classe Prova :

public class Prova {
int cont =1;
String log;

 

//minha dúvida é bem aqui, como eu faço para que cada vez que esse contador mudar o valor da variável ela seja colocada num jtextarea que eu tenho nesse JFanel que eu abro logo abaixo do main() (FrmPrincipal), ou seja, no primeiro loop, no textarea vai aparecer  "texto1, no segundo loop o valor do textarea vai ser texto2 ... e dai por diante ...


String InsereTexto(){
while(cont<10){
log= "texto+cont+"\n"";
                      }
                              }
                          
 public static void main(String args[]){
         
          //aqui eu chamo o JFrame
           JFramePr FrmPrincipal = new JFramePr();
           FrmPrincipal.show();
  }
}

E a Classe JFramePr :

public class JFramePr extends javax.swing.JFrame{

    /** Creates new form JFramePr */
    public JFramePr() {
        initComponents();
    }

// .... metodos e coisas que essa classe fazem e declarações de variaveis que o netbeans coloca  ....

public static void main(String args[]) throws IOException {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new JFramePr().setVisible(true);
                }
                 });
                   


}

Bom, espero que minha dúvida tenha ficado clara… Abraços!

5 Respostas

PedruH

Olá,

Existem várias maneiras de fazer isso. Vou deixar uma delas aqui.

Faça um array de String e para cada vez que sua classe Prova for chamada, incremente esse array usando o size do mesmo.

Exemplo: ArrayList array = new ArrayList();

array.add(“texto”+array.size+1);

Feito isso, passe o seu array como parametro no construtor do seu JFrame.

La nó seu JFrame faça uma iteração com um foreach e crie um JTextFiled para cada elemento do array.

Não é lá uma solução muito elegante, mas é uma solução que funciona ^^

PS: Lembrando que esse seu array vai ter que ser estático, se não vai ser “reniciado” toda vez que for criada uma nova instancia da classe Prova. Sendo estático você pode optar por não passar ele por parametro (deixe ele public static no lugar de private static).

Boa sorte ai, qualquer coisa dúvida é só falar.

S

Obrigado kra, caiu como uma luva!

PedruH

De nada.

Poe [Resolvido] no final do título do tópico, por favor.

ViniGodoy

Ele só não explicou que estático é uma das piores soluções que alguém poderia sugerir.

Procure estudar para livrar-se dela o mais rápido possível. E faça com passagens de parâmetro, como ele mesmo indicou.

PedruH

Pois é Vini, falei que tinha maneiras mais elegantes de resolver, pelo jeito ele ainda ta aprendendo, então foi só uma solução prática, se ele for curioso ele vai atrás das maneiras mais elegantes.

Mas de qualquer forma fica a dica do Vini, pra evitar usar variáveis estáticas.

Criado 10 de dezembro de 2010
Ultima resposta 12 de dez. de 2010
Respostas 5
Participantes 3