Encadeamento de Codigo[RESOLVIDO]

Pessoal boa noite, tenho o seguinte problema…
Tenho uma tela e nesta tela em um estante x eu chamo uma outra tela ai vem o problema, supondo que tenho tela x e tela y fica o seguinte.

execuntando tela x

chamo tela y, e a tela y preenche dados que utilizarei no processamento da tela x
fechou a tela y

volto a executar a tela x

precisava de algo procedural, não sei se fui claro, tenho que ir para segunda tela e nao posso continuar a executar a primeira pois ela precisa de elementos que serão setados pela segunda tela. Pensei em duas formas, claro ineficientes pois sou iniciante…

while(true){

if(segundaTelaFechar){
...........

break;
}

}

Porem ficaria perdendo processamento, e o outro geito seria que o código na tela inicial só continua-se quando a tela chama fecha-se.
Se alguém puder ajudar agradeço…

Cara usa os famosos metodos getters e setters

Quando vc fechar a tela y vc seta todos os valores que vc precisa usar na tela x, e dentro da Classe da tela x vc usa os metodos get para pega os valores.

Exemplo:
Classe Y

public class ClasseY{
  
   String valor1 = "";  

  public void setValor_1(String valor1){
        this.valor1 = valor1;
  }

  public String getValor_1(){
       return this.valor1;
  }

   addWindowListener(new java.awt.event.WindowAdapter() {
           public void windowClosing(java.awt.event.WindowEvent evt) {
               formWindowClosing(evt);
           }
   });

  private void formWindowClosing(java.awt.event.WindowEvent evt) {
           setValor_1(txtValor1.getText());
  }

 {....}

}


Classe X

[code]//Chamada da tela Y
ClasseY y = new ClasseY();
y.setLocationRelativeTo(this);
y.setSize(800,600);
y.setModal();
y.setVisible();
//O código a partir daqui só sera executado depois que a tela Y for fechada, então é aqui que vc vai pegar os valores da tela Y
//Agora é simples

txtSeuCampoTextoDaTelaX.setText(y.getValor_1());

//Simples assim, faça isso para todos os valores que vc quer pegar de uma tela para outra

[/code]

Bom ta bem detalhado ai uma solução, espero que te ajude.

[quote=luivilella]Pessoal boa noite, tenho o seguinte problema…
Tenho uma tela e nesta tela em um estante x eu chamo uma outra tela ai vem o problema, supondo que tenho tela x e tela y fica o seguinte.

execuntando tela x

chamo tela y, e a tela y preenche dados que utilizarei no processamento da tela x
fechou a tela y

volto a executar a tela x

precisava de algo procedural, não sei se fui claro, tenho que ir para segunda tela e nao posso continuar a executar a primeira pois ela precisa de elementos que serão setados pela segunda tela. Pensei em duas formas, claro ineficientes pois sou iniciante…

while(true){

if(segundaTelaFechar){
...........

break;
}

}

Porem ficaria perdendo processamento, e o outro geito seria que o código na tela inicial só continua-se quando a tela chama fecha-se.
Se alguém puder ajudar agradeço…

[/quote]

Oi,

Pelo o que eu entendi, você quer ter acesso a atributos de uma telaX dentro de uma telaY…
Você pode passar a telaX como parâmetro no construtor da segunda tela, assim poderia ter acesso aos atributos da telaX dentro da telaY.
EX:

[code]
public class TelaY {
TelaX telax;

public TelaY(TelaX telaX) {
this.telaX = telaX;
}

}[/code]

Amigo Vinny , muito obrigado pela ajuda… então é quase isto… o que você me passou não parou o código.
Tipo assim to fazendo assim.


public class Form1 extends javax.swing.JFrame {

System.out.println("Vou chamar");
Form2 f2 = new Form2();
f2.setVisible(true);
//Aqui só deveria executar quando o f2 fosse fechado
System.out.println("Passou pelo f2");
// daqui para baixo eu precisaria fazer testes com os valores que são setados pelo form2
if(Teste.numeroDeTeste == 1){
.....
}

}
public class Teste {
	
	public static Integer numeroDeTeste;
	
	
}

public class Form2 extends javax.swing.JFrame {


// to processando .... ai blz em algum evento 

Teste.numeroDeTeste = 1;


}


Então estou tentando utilizar os métodos que você me passou porem não esta parando. ou seja ao mesmo tempo que a tela 2 esta aperta no console esta todos os prints…

Eu precisava de algo como um JOptionPane.showConfirmDialog(arg0, arg1), porem um que eu possa editar colocar campos… montar uma tela…
Ou mesmo o modal do JSF…

Então só esta faltando uma coisa ali no seu código depois da linha do comando:

Form2 f2 = new Form2();

Antes do setVisible, coloque este comando aqui:

f2.setModal(true);

este comando impede que vc volta para a tela 1 antes que vc feche a tela 2, sendo assim, todo codigo que vem depois do setVisible(true) só vai ser executado depois que o f2 for fechado

Amigo Vinny, exatamente o que eu precisava.
Muito Obrigado… Muito Obrigado Mesmo!!!..

Opa de nada, é sempre bom estar ajudando alguém.
Agora só muda o Nome do Post, coloca [RESOLVIDO] la no titulo, caso algém esteja passando pela mesma dificuldade que vc passo, este post poderar ajudar!

Abraço :smiley: