[RESOLVIDO] Duvida classe Scanner

Olá,
Estou tentando resolver um exercicio proposto ao qual devo implementar a classe Funcionário usando o pacote comum e codificar um construtor que receba os valores através de argumentos e os métodos de manipulação (sets e gets). Devo também construir uma classe chamada TestaFuncionario, esta deve conter o método main() que deverá instanciar um objeto chamado func para a classe Funcionário. Os dados do funcionário, passados pelo construtor, deverão ser informados pelo usuário porem devo utilizar o Scanner para fazer a leitura dos dados, devo efetuar uma chamada ao método exibirDados().

A seguir esta o codigo que implementei, não houve erros porém após a solicitação de dados, na barra de status de tempo de execução esta escrito running e não sai disso, nenhuma mensagem de erro e a tela final ao qual deveria aparecer os resultados, não aparece, fiz o teste onde retirei a leitura do usuario e dei valores aos atributos do programa principal e o programa rodou certinho, acredito que o erro seja no Scanner mas não consigo indentifica-lo. O estranho é que ja utilizei o Scanner num codigo parecido e funcionou direitinho.
Por favor alguem poderia me ajudar???

Desde já muito obrigada!!!

package Comum;

import javax.swing.JOptionPane;

/**
 * @author Stephanie
 */
public class Funcionario {
    int matricula;
    String nome;
    String cargo;
    double salBruto;
    int percentualDesconto;
    
    //construtor
    public Funcionario(int matricula,String nome,String cargo,double salBruto, int percentualDesconto){
    this.cargo=cargo;
    this.matricula=matricula;
    this.nome=nome;
    this.percentualDesconto=percentualDesconto;
    this.salBruto=salBruto;    
    }
    //metodos modificadores
    public void setMatricula(int matricula){
    this.matricula=matricula;
    }
    public void setNome(String nome){
    this.nome = nome;
    }
    public void setCargo(String cargo){
    this.cargo = cargo;
    }
    public void setSalBruto(double salBruto){
    this.salBruto=salBruto;
    }
    public void setPercentualDesconto(int percentualDesconto){
    this.percentualDesconto = percentualDesconto;
    }
    
    public int getMatricula(){
    return matricula;
    }
    public String getNome(){
    return nome;
    }
    public String getCargo(){
    return cargo;
    }
    public double getSalBruto(){
    return salBruto;
    }
    public double getPercentualDesconto(){
    return percentualDesconto;
    }
    
    public void exibirDados(){
    JOptionPane.showMessageDialog(null,"Matricula: "+getMatricula()+"\nNome: "+getNome()+"\nCargo: "+getCargo()+
            "\nSalario Bruto: "+getSalBruto()+"\nPercentual Desconto: "+getPercentualDesconto()+"\nSalario Liquido: "+SalarioLiquido());
    
    }
    public double SalarioLiquido(){
    double res;
    res = getSalBruto() - (getSalBruto()*getPercentualDesconto()/100);
    return res;
    }
    
}
//main
package Comum;

import java.util.Scanner;

/**
 * @author Stephanie
 */
public class TestaFuncionario {

    public static void main(String[] args) {
        Scanner tecl = new Scanner(System.in);
        
        int matr;
        String nome ;
        String carg;
        double sal;
        int prc  ;
        
        System.out.println("Digite a matricula do funcionario: ");
        matr = tecl.nextInt();
        System.out.println("Digite o nome do funcionário: ");
        nome = tecl.next();
        System.out.println("Digite o cargo do funcionário: ");
        carg = tecl.next();
        System.out.println("Digite o salario do funcionário: ");
        sal = tecl.nextDouble();
        System.out.println("Digite a percentual de desconto do funcionario: ");
        prc = tecl.nextInt();
        Funcionario func = new Funcionario(matr,nome,carg,sal,prc);
        func.exibirDados();
    }
}

Bom, dei uma olhada muito por cima…

mas tenta usar nextLine() pra pegar as strings

Obrigada!

Está dando problema no seu método exibirDados(), coloque a impressão pelo console e vê se dá certo!

 public void exibirDados(){  
    System.out.println("Matricula: "+ matricula +"\nNome: "+ nome +"\nCargo: "+ cargo +  
            "\nSalario Bruto: "+ salBruto +"\nPercentual Desconto: "+ percentualDesconto +"\nSalario Liquido: "+ SalarioLiquido());  
      
    }  

Funcionou!!! Obrigada!!! :smiley:

Por nada :wink: