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
[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…
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:
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
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!