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…
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…
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
//Chamada da tela YClasseYy=newClasseY();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 é simplestxtSeuCampoTextoDaTelaX.setText(y.getValor_1());//Simples assim, faça isso para todos os valores que vc quer pegar de uma tela para outra
Bom ta bem detalhado ai uma solução, espero que te ajude.
orobsonpires
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...
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..
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:
public class TelaY {
TelaX telax;
public TelaY(TelaX telaX) {
this.telaX = telaX;
}
...
}
L
luivilella
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.
publicclassForm1extendsjavax.swing.JFrame{System.out.println("Vou chamar");Form2f2=newForm2();f2.setVisible(true);//Aqui só deveria executar quando o f2 fosse fechadoSystem.out.println("Passou pelo f2");// daqui para baixo eu precisaria fazer testes com os valores que são setados pelo form2if(Teste.numeroDeTeste==1){.....}}publicclassTeste{publicstaticIntegernumeroDeTeste;}publicclassForm2extendsjavax.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…
Vinny
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
L
luivilella
Amigo Vinny, exatamente o que eu precisava.
Muito Obrigado… Muito Obrigado Mesmo!!!..
Vinny
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!