[RESOLVIDO]Passando valores por parâmetro para o Construtor

Bom eu tenho uma JFrame criada, com o botão salvar, nessa JFrame tb tenho os dados nome, endereço, telefone, rg, cpf, salario.
eu preciso pegar os valores desses campos e passar para os atributos da minha classe principal.
Bom eu tenho que usar o construtor pra isso, mais como faço para passar esses valores?
Ex:
Essa é minha classe que preciso receber os valores

public class Celetista extends javax.swing.JFrame {
    private String nome;
    private String endereco;
    private String telefone;
    private String RG;
    private String CPF;
    private double salario;

Esse Código abaixo é do botão salvar que pega os valores das variáveis que preciso.

private void bt_salvarActionPerformed(java.awt.event.ActionEvent evt) {//ação do botão salvar

       String nom=jt_nome.getText();                                                                 //pegar o texto da variável nome
       String end=jt_endereco.getText();                                                             //pegar o texto da variável endereco
       String tel=jt_telefone.getText();                                                                //pegar o texto da variável telefone
       String rg=jt_RG.getText();                                                                        //pegar o texto da variável RG
       String cpf=jt_CPF.getText();                                                                      //pegar o texto da variável CPF
       String salStr = jt_salario.getText();                                                            //pegar o texto da variável salario
       double sal=Double.parseDouble(salStr);                                                     //converter o valor da variável salario para double

}//fim da ação do botão salvar

a minha dúvida é exatamente essa, como passar esses valores pelo construtor para a minha classe?

eu tentei da seguinte forma mais ele não deixa usar como um método depois (axo que é por isso que dizem que o construtor não é um método né)
Esse é o construtor

public Celetista(String nome,String endereco,String telefone,String RG,String CPF, double salario) { this.nome=nome; this.endereco=endereco; this.telefone=telefone; this.RG=RG; this.CPF=CPF; this.salario=salario; initComponents(); }

e chamei ele assim dentro do meu actionperformed do botão salvar

Celetista(nom,end,tel,rg,cpf,sal);

mais da problema, uso o NetBeans e ele não deixa compilar.

Ué:

Celetista celetista = new Celetista(nom, end, tel, rg, cpf, sal);

Ou, se quiser evitar criar variáveis inúteis:

Celetista celetista = new Celetista( jt_nome.getText(), jt_endereco.getText(), jt_telefone.getText(), jt_RG.getText(), jt_CPF.getText(), Double.parseDouble(jtSalario.getText()) );

[quote=ViniGodoy]Ué:

Celetista celetista = new Celetista(nom, end, tel, rg, cpf, sal);

Ou, se quiser evitar criar variáveis inúteis:

Celetista celetista = new Celetista( jt_nome.getText(), jt_endereco.getText(), jt_telefone.getText(), jt_RG.getText(), jt_CPF.getText(), Double.parseDouble(jtSalario.getText()) );[/quote]

Ele me gerou esses erros

run:

[quote]Exception in thread “AWT-EventQueue-0” java.lang.NumberFormatException: empty String
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:992)
at java.lang.Double.parseDouble(Double.java:510)
at ATPS.Celetista.bt_salvarActionPerformed(Celetista.java:155)
at ATPS.Celetista.access$000(Celetista.java:19)
at ATPS.Celetista$1.actionPerformed(Celetista.java:81)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6288)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6053)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4651)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:602)
at java.awt.EventQueue$1.run(EventQueue.java:600)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:616)
at java.awt.EventQueue$2.run(EventQueue.java:614)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
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]

[quote=ViniGodoy]Ué:

Celetista celetista = new Celetista(nom, end, tel, rg, cpf, sal);

Ou, se quiser evitar criar variáveis inúteis:

Celetista celetista = new Celetista( jt_nome.getText(), jt_endereco.getText(), jt_telefone.getText(), jt_RG.getText(), jt_CPF.getText(), Double.parseDouble(jtSalario.getText()) );[/quote]

ops o erro veiu pois eu estava deixando em branco os campos,
mais aí eu fiz um JOptionPane pra testar, e me retornou o nome como null

Ficou assim meu código

Essa minha classe

[code]public class Celetista extends javax.swing.JFrame {

private String nome;
private String endereco;
private String telefone;
private String RG;
private String CPF;
private double salario;

[/code]

Esse o construtor que eu criei

public Celetista(String nome, String endereco, String telefone, String RG, String CPF, double salario) { this.nome = nome; this.endereco = endereco; this.telefone = telefone; this.RG = RG; this.CPF = CPF; this.salario = salario; }

Esse é a ação do botão

private void bt_salvarActionPerformed(java.awt.event.ActionEvent evt) { Celetista celetista=new Celetista( jt_nome.getText(), jt_endereco.getText(), jt_telefone.getText(), jt_RG.getText(), jt_CPF.getText(), Double.parseDouble(jt_salario.getText())); imprimir(); }

E essa o método imprimir o nome

public void imprimir() { JOptionPane.showMessageDialog(null, "O nome é:" + this.nome); }

O Projeto do NetBean está em anexo a essa mensagem, preciso urgente de uma solução para o meu problema, não estou encontrando em local algum, e já tentei de várias formas diferentes, não intendo o motivo que não consigo utilizar esses valores.

Eu fiz a classe principal que inicia, e só completei a parte Celetista, que não estou conseguindo passar por parâmetro para o construtor. Na vdd consigo mais quando imprimo ele aparece como null. Se alguém puder testar, estou com a cabeça a mil já por causa desse problema, so leigo ainda em JAVA.
Acredito ser algo MUITO simples mais que não to conseguindo.

Teu método de imprimir deve estar assim:

[code]public void imprimir() {
JOptionPane.showMessageDialog(null, “O nome é:” +jt_nome.getText());
JOptionPane.showMessageDialog(null, “O Endereço é:” + jt_endereco.getText());
JOptionPane.showMessageDialog(null, “O Telefone é:” + jt_telefone.getText());
JOptionPane.showMessageDialog(null, “O RG é:” + jt_RG.getText());
JOptionPane.showMessageDialog(null, “O CPF é:” + jt_CPF.getText());
JOptionPane.showMessageDialog(null, “O salario é:” + jt_salario.getText());

}[/code]

Ai vai funcionar de forma correta!

[quote=paty_trind]Teu método de imprimir deve estar assim:

[code]public void imprimir() {
JOptionPane.showMessageDialog(null, “O nome é:” +jt_nome.getText());
JOptionPane.showMessageDialog(null, “O Endereço é:” + jt_endereco.getText());
JOptionPane.showMessageDialog(null, “O Telefone é:” + jt_telefone.getText());
JOptionPane.showMessageDialog(null, “O RG é:” + jt_RG.getText());
JOptionPane.showMessageDialog(null, “O CPF é:” + jt_CPF.getText());
JOptionPane.showMessageDialog(null, “O salario é:” + jt_salario.getText());

}[/code]

Ai vai funcionar de forma correta![/quote]

Então mais esse método imprimir é só pra mim testar se to conseguindo enviar os dados pra minha classe através do construtor, por isso que quando vo imprimir eu peço pra ele acessar i atributo da classe Celetista, eu preciso enviar o que recebo pelo formulário via construtor para a classe, assim posso recuperar ele mais tarde para poder fazer os calculos(No exercício que estou fazendo, está pedindo pra enviar via construtor para os atributos)

cria os métodos de acesso(get’s e set’s) e para ti testar tu coloca um print assim no teu método salvar:

[code] private void bt_salvarActionPerformed(java.awt.event.ActionEvent evt) {

    String nom = jt_nome.getText(); //recebe o nome
    String en = jt_endereco.getText();//recebe o endereco
    String tel = jt_telefone.getText();//recebe o telefone
    String rg = jt_RG.getText();//recebe o RG
    String cpf = jt_CPF.getText();//recebe o CPF
    double sal = Double.parseDouble(jt_salario.getText());//recebe o salário e converte pra double
    cel = new Celetista(nom, en, tel, rg, cpf, sal);//instacia da variavel que criei mais acima
  
 [b]  System.out.println("Nome:"+cel.getNome()+" Endereço:"+cel.getEndereco());[/b]

JOptionPane.showMessageDialog(null, nom);//esse eu criei pra ver se

}

[/code]

[quote=paty_trind]cria os métodos de acesso(get’s e set’s) e para ti testar tu coloca um print assim no teu método salvar:

[code] private void bt_salvarActionPerformed(java.awt.event.ActionEvent evt) {

    String nom = jt_nome.getText(); //recebe o nome
    String en = jt_endereco.getText();//recebe o endereco
    String tel = jt_telefone.getText();//recebe o telefone
    String rg = jt_RG.getText();//recebe o RG
    String cpf = jt_CPF.getText();//recebe o CPF
    double sal = Double.parseDouble(jt_salario.getText());//recebe o salário e converte pra double
    cel = new Celetista(nom, en, tel, rg, cpf, sal);//instacia da variavel que criei mais acima
  
 [b]  System.out.println("Nome:"+cel.getNome()+" Endereço:"+cel.getEndereco());[/b]

JOptionPane.showMessageDialog(null, nom);//esse eu criei pra ver se

}

[/code][/quote]

daria certo tb, mais no exercício pede pelo construtor, por isso que fica complicado!!!

Galera consegui, na vdd está perfeito meu código, com apenas um erro (O motivo pelo retorno em null). Como sou novo em Java não tinha percebido isso a tempo, mais é vivendo e aprendendo né.

Bom o problema foi o seguinte, meu construtor está perfeito, os parâmetros também, mais eu pequei na hora de chamar o meu método imprimir().
o correto como instanciei, o código ficaria assim:

cel.imprimir();

e no meu Exemplo aí em cima estava assim:

imprimir();

foi um erro básico de mais, tomara que possa ajudar se alguém mais tiver um erro assim.