Dúvida com String

7 respostas
Z
BOM DIA A BAIXO SEGUE UMA CLASSE
package Biblioteca;

import javax.swing.JOptionPane;

public class Emprestimo implements Dao{
    protected String codigo;
    protected Usuario usuario;
    protected Livro livro;
    protected int dt_emprestimo;
    protected int dt_prazo;
    protected int dt_devol;
    protected  String aux = " ";
    

    Emprestimo(String usr, String tit, int dta) {
        this.usuario = usuario;
        this.livro = livro;
        this.dt_emprestimo = dta;
     }


    
    
    
    public void cadastrar (String mat){
        this.codigo = mat;  
           
    }
     
    void gerar_prazo(){
        
        if (this.usuario.tipo == 1){
            this.dt_prazo = this.dt_emprestimo + 3;
        }
        if (this.usuario.tipo == 2){
            this.dt_prazo = this.dt_emprestimo + 6;
        }
        if (this.usuario.tipo == 3){
            this.dt_prazo = this.dt_emprestimo+4;
        }
        aux += "CODIGO: "+this.codigo+"\nUSUÁRIO: " + this.usuario.nome+"\nLIVRO: " + this.livro.titulo+"\n\n";
        //"\nDATA EMPRESTIMO: "+this.dt_emprestimo+
        
        
    }
        
    public void mostrar(){
         
         JOptionPane.showMessageDialog(null, aux);
        
    }

essa string aux toda vez quando eu chamo a função mostrar, ela so me exibe uma janela vazia, sem nada, nem ao menos os dados que estao entre "" alguem poderia me ajudar???

7 Respostas

igor_ks

Bem vindo ao fórum..

Por favor, edite seu código colocando entre as tags [code] para que fica melhor identada.

Agora em outro post:
- Mostre onde você faz a chamada do seu método mostrar(), pois o método mostrar() vai dar o showMessage do que estiver na variável aux, mas se ele não for populado antes, não vai mostrar nada mesmo

Algumas coisas que notei..
Se tudo estiver na mesma classe, não fica legal juntar a classe de domínio (Emprestimo), com a camada de DAO
Procure deixar seus atributos como private, e encapsule-os, ao menos que seja necessário mesmo ser protected

ErickRAR

Você preenche essa String no método gera_prazo. Está chamando ele em algum lugar?

Z

eu chamo o metodo mostrar() na minha classe principal
eu havia coloca a string aux dentro do mostrar, mas o programa sempre abortava na hora
eu coloquei ela no metodo gera_prazo pra poder receber o valor do this.dt_prazo, mas eu ja tirei isso

igor_ks

e vc chama o metodo gerar_prazo() antes de chamar o mostrar() ?

Z

eu nao chamo o metodo gera prazo apenas o mostrar
fiz baseado c essa classe q esta funcionando

package Biblioteca;

import javax.swing.JOptionPane;

public  class  Usuario implements Dao{

protected String matricula;

protected String nome;

protected int tipo;//1 - aluno; 2 - professor; 3 - funcionario;

protected static String  aux = " ";

public void  Usuario (String nome, int tipo){
this.nome = nome;
     this.tipo = tipo;
 }
 public void cadastrar (String mat){

    this.matricula = mat;
      aux += "MATRICULA: "+this.matricula+"\nNOME: " + this.nome+"\nTIPO: " + this.tipo+"\n\n";
    
}

public void mostrar (){
    //JOptionPane.showMessageDialog(null,"MATRICULA: "+this.matricula+"\nNOME: " + this.nome+"\nTIPO: " + this.tipo+"\n\n");

   JOptionPane.showMessageDialog(null, this.aux);
}

}

igor_ks

Use a tag code para postar seus códigos

Entenda que o showMessage do JOptionsPane só vai mostrar o que estiver dentro da sua variável aux. Se em nenhum momento você populou essa variável, ela sempre mostrará null

Essa classe Usuario que funciona pra você, deve ser porque em algum momento, você chama o cadastrar() antes de chamar o mostrar()

Z

acabei de notar isso
ja estou tentando fazer outras alterações
qualquer duvida eu volto

Criado 11 de dezembro de 2013
Ultima resposta 11 de dez. de 2013
Respostas 7
Participantes 3