Pessoal preciso que ao carregar um frame o mesmo já receba as informações em seus TextFields os mesmos valores de um outro frame. Então fiz isso:
[code]public Formulario(Dados_Pessoais dados_pessoais) {
[color=red]tf_funcionarioRelatorio1.setText(Integer.toString(Dados_Pessoais.tf_funcionario));[/color]
this.dados_pessoais = dados_pessoais;
this.setVisible(false);
setSize(476,330);
setLocationRelativeTo(null);
initComponents();
}[/code]
Nessa linha dá erro dizendo que o acesso a variável que estou utilizando é private, mas eu a mudo para public ela continua dizendo a mesma coisa.
Não consegui entender o seu exemplo. O meu problema é mais simples. Seguinte: Tenho a classe Dados_Pessoais e dentro dela tenho, por exemplo o textfield tf_funcionario e quero passar o texto escrito nele para o textfield tf_funcionarioRelatorio que está dentro da classe Formulario. São duas classes diferentes entendeu?
Ah, tem também uma comboBox na classe Dados_Pessoais que eu quero passar o valor selecionado para um TextField na classe Formulario.
Será que teria como me ajudar nessa? Obrigado.
O que vc não entendeu? O exemplo mostra exatamente como passar dados entre telas diferentes.
Bem, eu fiz o seguinte:
[code]//Criando nova instãncia
cb_cargo = new javax.swing.JComboBox();
//Aqui é somente gráfico porque eu coloquei o ComboBox dentro de um JPanel e configurei o JPanel para ter borda com nome
cb_cargo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { “GERENTE GERAL”, “GERENTE DE TREINAMENTO”, “GERENTE OPERACIONAL”, “SUPERVISOR OPERACIONAL”, “SUPERVISOR DE TREINAMENTO”, “SECRETÁRIO”, “AUXILIAR ADMINISTRATIVO”, “AUXILIAR DE OPERADOR”, “AUXILIAR DE SERVIÇOS GERAIS”, “GUARDIÃO DE PISCINA”, “OPERADOR DE PISCINA”, “OPERADOR / GUARDIÃO”, “MOTOBOY” }));
cb_cargo.setBorder(null);
javax.swing.GroupLayout p_cargoLayout = new javax.swing.GroupLayout(p_cargo);
p_cargo.setLayout(p_cargoLayout);
p_cargoLayout.setHorizontalGroup(
p_cargoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(cb_cargo, 0, 188, Short.MAX_VALUE)
);
p_cargoLayout.setVerticalGroup(
p_cargoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(cb_cargo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
);
//Declaração da variável
private javax.swing.JComboBox cb_cargo;
[/code]
Mas o método construtor:
private JComboBox getTfFuncionario(){
if (cb_cargo != null){
return cb_cargo;
}
}
Aqui diz que falta o statement de retorno. Ou seja ele não entende o que o método retorna. Eu vi que ele retorna um JComboBox mas está dando erro.
Ah Vini, foi mal pelo outro tópico valeu?
Eu criei o construtor na classe Dados_Pessoais:
public JTextField gettf_funcionario(){
return tf_funcionario;
}
Na classe Formulario eu recebi os parâmetros:
this.dados_pessoais.gettf_funcionario().getText();
Mas deu erro de execução
[quote]Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at ciadapiscina.Formulario.<init>(Formulario.java:27)
at ciadapiscina.Dados_Pessoais.<init>(Dados_Pessoais.java:46)
at ciadapiscina.Main$1.run(Main.java:19)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)[/quote]
Esse erro quer dizer que eu não estou referenciando corretamente, certo?
MAs eu criei as instãncias das classes justamente afim de que elas possam se ver
//Criando nova instância do frame Formulario na classe Dados_Pessoais
formulario = new Formulario(this);
E inicializei os Frames
//Na classe Dados_Pessoais:
this.dados_pessoais = dados_pessoais;
this.formulario = formulario;
//Na classe Formulario
this.dados_pessoais = dados_pessoais;
Mas onde foi que eu errei?
Consegui. Fiz isso:
Na classe 1, o método construtor:
public JTextField jtextfield1(){
return jtextfield1;
}
Na classe 2:
[code]
setJtextfield1(classe1.getJtextfield1());
public void setJtextfield1(JTextField jtextfield1) {
this.jtextfield1.setText(jtextfield1.getText());
}[/code]