Acessar array num método setters atribuindo valor em JOption

4 respostas
P

Bom pessoal, andei pesquisando aqui no GUJ e não achei a minha dúvida. Eu não estou sabendo referenciar uma array que está num método setter.

public class Base {
	private String[] nome = new String[3];
	private double[] salario = new double[3];
	
	public void setNome(String[] nome){
		this.nome = nome;
	}
	public String[] getNome(){
		return nome;
	}
	public void setSalario(double[] salario){
		this.salario = salario;
	}
	public double[] getSalario(){
		return salario;
	}	
}
import javax.swing.*;
public class TestaBase {
	public static void main(String[] args) {
		int i,j;
		
		Base f1 = new Base();		
		JFrame frame = new JFrame();
	
	
		for(i=0; i < f1.getNome().length; i++){
			[b]f1.setNome([i])[/b] = (JOptionPane.showInputDialog(frame, //dúvida aqui
					"Digite o nome do funcionário: "));
			f1.setSalario([i]) = Integer.parseInt(JOptionPane.showInputDialog(frame, 
					"Digite o salário do funcionário: "));
		}
		for(j=0; j<=2; j++){
			JOptionPane.showMessageDialog(frame, "Nome: "+f1.nome[j]
					+"\n " +"Salario: "+f1.salario[j]);
		}
	}
}

4 Respostas

Jeferson_Manetti

opa… vamos ver…

eu acho q vc fez 2 coisas erradas…

1 - f1.setNome([i]) = (JOptionPane.showInputDialog(frame, //dúvida aqui
"Digite o nome do funcionário: ")
);

isso aqui n funfa… pra vc atribuir coisas no metodo teria q ser… f1.setNome(alguma coisa)

2 - esse alguma coisa teria q ser uma String[] senão não iria funcionar…

creio q para funcionar vc teria q fazer…

f1.getNome()[i] = (JOptionPane.showInputDialog(frame,  "Digite o nome do funcionário: "));

acho q assim deve funcionar…

ok

P

Ah é no getNome? Achei que fosse no setNome. Vou tentar.

P

Não funcionou.

G

Cara vejo alguns problemas... vc está recebendo como parametro no setNome um Vetor e está tentando inserir uma unica string ao invés de um vetor de strings...

fiz desta forma, existem outras mas como estou trabalhando foi a solução mais rápida

public class Base {  
    private String[] nome = new String[3];  
    private double[] salario = new double[3];  
      
    public void setNome(String[] nomes){  
        this.nome = nomes;  
    } 
    
     //Sobrecarga do método setNome 
    public void setNome(String nome, int posicao){  
        this.nome[posicao] = nome;  
    } 
    
    public String[] getNome(){  
        return nome;  
    }  
   
}

agora no main vc faz assim

//...

        for (i = 0; i < f1.getNome().length; i++) {            
            
            String tmp = JOptionPane.showInputDialog(frame,
                    "Digite o nome do funcionário: ");            
            f1.setNome(tmp, i);   
            
            //Continuação do Código...
        }        
    }//end main
}//end class

como já disse, existem outras formas de se fazer isso, como por exemplo preencher um array de strings primeiro e depois passa-lo de uma vez soh como
parametro para o setter...

espero que eu tenha ajudado cara, se não ajudei foi porque n entendi sua duvida direito

See ya!

Criado 5 de agosto de 2011
Ultima resposta 9 de ago. de 2011
Respostas 4
Participantes 3