| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/09/2006 02:49:41
|
ItaloE
JavaBaby
![[Avatar]](/images/avatar/e056e52c8dcd019a63e6a3f169892cc9.jpg)
Membro desde: 24/08/2006 17:09:13
Mensagens: 76
Offline
|
Olá...estou tentando fazer com que eu possa escrever uma mensagem em um frame e ao clicar em 'enviar' o label do segundo frame seja alterado, passando a exibir o que eu digitei no primeiro frame.
Dentre os varios problemas, como não conseguir fazer referencia ao segundo frame no metodo actionPerformed, eu sequer consigo referenciar um label do frame 2 dentro do frame 1, trocando seus valores....
no código abaixo tento referenciar o JLabel do frame2 em uma variavel do frame 1 e vice-versa..
public static void main(String[] args) {
Formulario f1 = new Formulario();
new Thread(f1).start();
Formulario2 f2 = new Formulario2(f1.getFrame());
new Thread(f2).start();
f1.setF(f2.getF());//referencia o frame do form 2 no form 1
f2.setF(f1.getF());//refetencia o frame do form 1 no form 2
f1.getLabel2().setText(f2.getLabel22().getText());
f2.getLabel22().setText(f1.getLabel().getText());
}
o que acontece é que na linha "f1.getLabel2().setText(f2.getLabel22().getText());" eu pego uma NullPOinterException
alguém poderia me ajudar aqui ? não entendi o porque do null Exception...
se precisar do resto do código é só falar....
|
"Think!"
"Povo estúpido tem q se F..., vamo nos para mais 4 anos de estupidez e ignorância. Mas o povo tem o que merece" |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/09/2006 08:44:48
|
danyelsanches
JavaChild
Membro desde: 19/05/2006 17:46:34
Mensagens: 107
Offline
|
Olá, para isto vc poderá usar Reflection:
http://www.guj.com.br/java.tutorial.artigo.10.1.guj
De uma olhada neste tutorial, e depois pesquise sobre o BeanUtils e PropertyUtils do apache. (commons-beanutils-1.6.jar), facilita muito a utilização com reflection.
Daniel Eduardo
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/09/2006 15:34:01
|
dudaskank
GUJ Ranger
Membro desde: 12/09/2003 14:59:26
Mensagens: 850
Localização: Suzano, SP, Brasil
Offline
|
Acho que não precisa de tanto não, é só dar uma organizada melhor no código que vai...
Aliás, olhando esse trecho aí já fiquei perdido hehehe.
Bom, o que vc vai precisar fazer é ver o que tá sendo retornado pelos seus getLabel(), porque a idéia é essa mesma. Provavelmente faltou fazer um label22 = new JLabel() hehehe.
Bem, se vc colocar a outra parte do código vai dar pra ver o que acontece aí melhor...
flw
|
Eduardo Oliveira
Toque a balada do amor inabalável, eterna love song de nós dois...
Página |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/09/2006 16:32:41
|
ItaloE
JavaBaby
![[Avatar]](/images/avatar/e056e52c8dcd019a63e6a3f169892cc9.jpg)
Membro desde: 24/08/2006 17:09:13
Mensagens: 76
Offline
|
Blz, dudaskank....
segue o codigo completo...
public class Teste {
/**
* @param args
*/
public static void main(String[] args) {
Formulario f1 = new Formulario();
new Thread(f1).start();
Formulario2 f2 = new Formulario2(f1.getFrame());
new Thread(f2).start();
f1.setF(f2.getF());//referencia o frame do form 2 no form 1
f2.setF(f1.getF());//refetencia o frame do form 1 no form 2
//troca o valor de um label do frame x pelo valor do label do frame y, somente para teste
f1.getLabel2().setText(f2.getLabel22().getText());
f2.getLabel22().setText(f1.getLabel().getText());
}
}
Agora os formularios...
public class Formulario implements ActionListener, Runnable {
private JLabel label;
private JLabel label2;
private JTextField textField;
private JPanel panel;
private JFrame frame;
private JFrame f;
private JButton button;
private JButton button2;
public JFrame getFrame() {
return frame;
}
// construtor
public Formulario() {
}
public void montaForm() {
label = new JLabel("seu nome: ");
label2 = new JLabel("form 1");
textField = new JTextField(30);
button = new JButton("Exibir");
button2 = new JButton("Enviar");
button.addActionListener(this);
panel = new JPanel();
panel.add(label);
panel.add(textField);
panel.add(button);
panel.add(button2);
panel.add(label2);
button2.setAlignmentX(100);
button2.setAlignmentY(30);
frame = new JFrame("Meu First Form, hahhaha!!!");
frame.add(panel);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
String texto = textField.getText();
JOptionPane.showMessageDialog(f, texto);
}
public void run() {
this.montaForm();
}
public JFrame getF() {
return f;
}
public void setF(JFrame f) {
this.f = f;
}
public JLabel getLabel2() {
return label2;
}
public void setLabel2(JLabel label2) {
this.label2 = label2;
}
public JLabel getLabel() {
return label;
}
}
Formulario 2:
public class Formulario2 implements ActionListener, Runnable {
// form 2
private JLabel label2;
private JLabel label22;
private JTextField textField2;
private JPanel panel2;
private JFrame frame2;
private JFrame f;
private JButton button2;
public JFrame getFrame() {
return frame2;
}
// construtores
public Formulario2() {
}
public Formulario2(JFrame f) {
}
public void montaForm() {
label2 = new JLabel("seu nome: ");
label22 = new JLabel("form 2");
textField2 = new JTextField(30);
button2 = new JButton("Exibir");
button2.addActionListener(this);
panel2 = new JPanel();
panel2.add(label2);
panel2.add(textField2);
panel2.add(button2);
panel2.add(label22);
frame2 = new JFrame("meu segundo frame,,heheheh!!!");
frame2.add(panel2);
frame2.pack();
frame2.setVisible(true);
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
String texto = textField2.getText();
JOptionPane.showMessageDialog(f, texto);
}
public JFrame getF() {
return f;
}
public void setF(JFrame f) {
this.f = f;
}
public void run() {
this.montaForm();
}
public JLabel getLabel2() {
return label2;
}
public JLabel getLabel22() {
return label22;
}
public void setLabel22(JLabel label22) {
this.label22 = label22;
}
}
Já fiz diversas variações e de maneira nehuma consegui fazer um frame trocar um valor de um atributo de outro.
Vlw pela força...
|
"Think!"
"Povo estúpido tem q se F..., vamo nos para mais 4 anos de estupidez e ignorância. Mas o povo tem o que merece" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/09/2006 16:39:30
|
aangreen
Debugger
![[Avatar]](/images/avatar/5cc5786888fcd29fead92651a9ddd9c1.jpg)
Membro desde: 21/09/2006 11:16:01
Mensagens: 58
Localização: Curitiba
Offline
|
Passa o texto q vc quer imprimir no outro frame pelo construtor q funciona, ja usei dessa forma
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/09/2006 02:56:13
|
ItaloE
JavaBaby
![[Avatar]](/images/avatar/e056e52c8dcd019a63e6a3f169892cc9.jpg)
Membro desde: 24/08/2006 17:09:13
Mensagens: 76
Offline
|
entao, anngreen...
ate consegui fazer o que vc falou ...mas não consegui pegar a ação do botao enviar do outro frame para fazer essa atribuição....
A idéia é fazer isto dinamicamente... se você souber uma forma de fazer assim pelo construtor eu agradeço ..tentei aqui e não tive sucesso(buscando um ActionEvent no construtor).
A idéia principal é passar as infos que são digitadas nos JTextFields para o outro frame...
Mas vlw pela dica!!!
|
"Think!"
"Povo estúpido tem q se F..., vamo nos para mais 4 anos de estupidez e ignorância. Mas o povo tem o que merece" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/09/2006 08:20:40
|
aangreen
Debugger
![[Avatar]](/images/avatar/5cc5786888fcd29fead92651a9ddd9c1.jpg)
Membro desde: 21/09/2006 11:16:01
Mensagens: 58
Localização: Curitiba
Offline
|
entaum cara, se vc quer passar só o q é digitado, poderia fazer pelo construtor mesmo.....
mas se vc quiser passar um evento....... ou que o frame dependa de um principal.... aconselho a usar JInternalFrame
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/09/2006 09:52:24
|
ItaloE
JavaBaby
![[Avatar]](/images/avatar/e056e52c8dcd019a63e6a3f169892cc9.jpg)
Membro desde: 24/08/2006 17:09:13
Mensagens: 76
Offline
|
Vou tentar implementar aqui com essas duas aproximações então...
Vlw pelas dicas ae aangreen
|
"Think!"
"Povo estúpido tem q se F..., vamo nos para mais 4 anos de estupidez e ignorância. Mas o povo tem o que merece" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/12/2009 17:46:57
|
ct_d
Smalltalk
![[Avatar]](/images/avatar/1ef7439fcbd996e8d43d6d5dc6e7a314.png)
Membro desde: 30/11/2009 13:17:20
Mensagens: 3
Offline
|
Oi pessoal
Estou aqui com uma duvida
Estou a tentar saltar de uma janela (MainFrame- onde está o menu novo jogo) para a janela (ConfigDialog) onde a ConfigDialog vai buscar caracteristicas À função JogoEvolucionario
Inseri este codigo:
protected void novoJogoMenuItem_actionPerformed(ActionEvent e) {
ConfigDialog cd = new ConfigDialog();
cd.setVisible(true);
JogoEvolucionario conf = cd.getJogoEvolucionario();
if(conf != null){
//inicia jogo evolucionario no panel
}
O código funciona, mas não me mostra as labels, comboBox, etc k estao na janela ConfigDialog, apenas mostra essa janela vazia..
Como faço pa mostrar tudo o que está na janela?
cumprimentos
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/12/2009 21:39:11
|
CrOnNoS
JavaGuru
![[Avatar]](/images/avatar/95c14ff9ca2c5d8ead4a18b1e830d504.jpg)
Membro desde: 28/11/2007 16:18:30
Mensagens: 213
Localização: Goiânia - GO
Offline
|
coloque o setVisible(true) apenas depois de terminar de mexer (configurar) tudo que você precisa mexer na sua janela.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/12/2009 10:21:19
|
ct_d
Smalltalk
![[Avatar]](/images/avatar/1ef7439fcbd996e8d43d6d5dc6e7a314.png)
Membro desde: 30/11/2009 13:17:20
Mensagens: 3
Offline
|
CrOnNoS wrote:coloque o setVisible(true) apenas depois de terminar de mexer (configurar) tudo que você precisa mexer na sua janela.
pus o setVisible(true) depois, e continua a não mostrar o conteudo que esta dentro da janela :S
posso ter feito mal
meti assim :
não é assim que é para fazer?
|
|
|
 |
|
|