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?
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
fabioEM
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!!
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
fabioEM
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
fabioEM
RobsonCassol:
Bom dia pessoal,
A duvida é a seguiente:
Tenho 2 JFrames, o principal Frame1 e o secundário que é criado de dentro do primeiro.
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:
importjava.util.ArrayList;importjavax.swing.JButton;importjavax.swing.JFrame;classCidade{//atrubutos.....//metodos.....}classJCidadesextendsJFrameimplementsActionListener{staticArrayList<Cidade>lis_cidades;JButtonbutton;JCidades(){button=newJButton("aperte para cadastro");button.addActionListener(this);add(button);//ect.............}///metodos ect......publicvoidactionPerformed(ActionEvente){if(e.getSource()==button)newJCadastroCidades();//abre o segundo JFrame para o cadastro}}publicclassJCadastroCidadesextendsJFrame{JCadastroCidades(){setSize(200,300);//ect.......}//metodosvoidfazerCadastroCidades(){//quando é feito o cadastro neste JFrame JCadastroCidades //a cidade é adicionada para o principalJCidades.lis_cidades.add(newCidade());}}
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…
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.