Duvida em Eventos de Jframes Separados

9 respostas
RobsonCassol

Bom dia pessoal,

A duvida é a seguiente:

Tenho 2 JFrames, o principal Frame1 e o secundário que é criado de dentro do primeiro.

JFrame2 frame2 = new JFrame2();
frame2.setVisible(true);

No Frame principal tenho uma lista de cidades e para adicionar uma nova cidade clico em
um botão que gera o segundo Frame no qual sera cadastrada a nova cidade.
Como faço para atualizar o frame principal com a nova cidade?

Existe alguma forma de disparar um evento no Form principal apartir do secundário?

9 Respostas

F

ou seja ,vejamos se entendi,um evento principal deve ser disparado a partir de um secundário?
por exemplo;vc tem 2 Jframes eu teclo o botão desse segundo e dispara um evento para o botão do primeiro JFrame?É isso mesmo?

RaulCarlin

Utilize JDialog…

RobsonCassol

fabioEM é exatamente isso que quero saber!

Ja tentei utilizar JDialog mas isso acarreta outro problema. No formulário principal eu crio um
secundário para cadastro de cidades, no entanto eu quero que seja possivel chamar outro
formulário para cadastro de “Estados” a partir do form de “Cidades”. Levando em consideração que
um JDialog precisa de um JForm como referencia isso não seria possivel.

F

Bom cara, então coloca o modificador static na primeira variável que queres que seja alterada.
Assim qd o evento do segundo Jframe for disparado vc altera através de um “if” vc a variavel static
que tens interesse do primeiro Jframe!! :slight_smile:

RobsonCassol

Mas dessa forma eu vou ter que ficar verificando se a variavel do primeiro form mudou, para só então
realizar o evento que desejo. é isso?

F

RobsonCassol:

Bom cara, então coloca o modificador static na primeira variável que queres que seja alterada.
Assim qd o evento do segundo Jframe for disparado vc altera através de um “if” vc a variavel static
que tens interesse do primeiro Jframe!!

Mas dessa forma eu vou ter que ficar verificando se a variavel do primeiro form mudou, para só então
realizar o evento que desejo. é isso?


Cara posta o código ai vais ser melhor

LG11

já tentou usar o JList ou o JComboBox !?
Ambos são ideias e bem faceis. É so usar uma arrayList.

com o JList, você pode usar o método setListData() para joga o valor na lista.
Mas por via de dúvidas… como o fabioEM* disse, poste o codigo que vai fica mais facil de te atender.

F

RobsonCassol:
Bom dia pessoal,

A duvida é a seguiente:

Tenho 2 JFrames, o principal Frame1 e o secundário que é criado de dentro do primeiro.

JFrame2 frame2 = new JFrame2();
frame2.setVisible(true);

No Frame principal tenho uma lista de cidades e para adicionar uma nova cidade clico em
um botão que gera o segundo Frame no qual sera cadastrada a nova cidade.
Como faço para atualizar o frame principal com a nova cidade?

Existe alguma forma de disparar um evento no Form principal apartir do secundário?


De acordo com o meu entendimento da sua dúvida fiz o seguinte:

import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;

class Cidade{
    //atrubutos.....
   //metodos.....
}

 class JCidades extends JFrame implements ActionListener{
    static ArrayList<Cidade> lis_cidades;
    JButton button;
    JCidades(){
     button=new JButton("aperte para cadastro");
     button.addActionListener(this);
     add(button);
    //ect.............
     }
    ///metodos ect......
    public void actionPerformed(ActionEvent e) {
        if(e.getSource() == button )
         new JCadastroCidades();//abre o segundo JFrame para o cadastro
    }
}
public class JCadastroCidades extends JFrame {
 
  JCadastroCidades(){
   setSize(200,300);
 //ect.......
  }
  //metodos
  void fazerCadastroCidades(){
      //quando é feito o cadastro neste JFrame  JCadastroCidades 
     //a cidade é adicionada para o principal
     JCidades.lis_cidades.add(new Cidade());  
  }

}

Se o intuito é só de administrar a classe cidade a partir de uma interface JFrame então vc não precisa de outro evento no 2 JFrame.Pois esse segundo JFrame deveria ser o resposável por todos os metodos de manipulação da sua lista.Com a lista com o modificador estático ,vc pode criar n interfaces gráficas para poder alterar-la sem acrescentar n eventos.Sempre se é isso mesmo que tu queria… :slight_smile:

RobsonCassol

Me disculpem pessoal. Acho que me expresei mal!
o problema era bem mais simples do que isso, o queria realmente era acessar um método do formulário
principal apartir do secundário.

Para resolver isso é só passar o Form principal por paramentro para o segundo form, dessa forma tenho
acesso a todos os métodos publicos do principal através do secundário.

Obrigado pela atenção de todos.

p.s: Da proxima vez me expresso melhor.

Criado 7 de abril de 2008
Ultima resposta 7 de abr. de 2008
Respostas 9
Participantes 4