Pessoal, é o seguinte:
Possuo uma classe com um método String que tem que retornar uma String através de um If Else. Ele vê se uma váriavel tem é maior ou menor que a condição, se for irá apresentar um texto, senão irá apresentar outro texto.
public String verTipo(String tipo){
if(cargaDeHoras >= 50){
this.tipo = "D. T.";
}
else{
this.tipo = "CV";
}
return this.tipo = tipo;
}
Agora é o seguinte: quero que num jField eu insira a quantidade de horas e quando clicar num botão, ele chame o método verTipo() pra ver se é verdadeiro ou falso e jogar as strings “D. T.” ou “CV” em outro jField como resultado.
Como procedo com isso. Lembrando que especificamente eu preciso pegar um metodo de uma classe e usa-lá na minha Classe principal, ok?
Como posso resolver.
Grato
Embora esse teu código funcione, ele está confuso.
A palavra reservada this indica ao compilador que você está se referindo a um elemento do objeto corrente (no caso, a um atributo chamado tipo). Por conta disso, entende-se que você está definindo o valor do atributo tipo do objeto corrente (this.tipo) e não do parâmetro tipo que é recebido na invocação do método.
Porém, fica ainda pior: você tem um atributo chamado cargaDeHoras que é referenciado sem o uso de this e o mesmo não é recebido como parâmetro no método.
E, piora: você faz a comparação, define um valor para this.tipo e, ao retornar, sobrescreve o tal valor com o parâmetro tipo recebido na invocação do método.
Pelo que entendi, você só precisaria fazer isso:
public void verTipo() {
this.tipo = (cargaDeHoras >= 50 ? "D. T." : "CV");
}
Ou, se realmente precisa retornar algo:
public String verTipo() {
return (cargaDeHoras >= 50 ? "D. T." : "CV");
}
Bem mais simples e fácil de entender.
Obs.: quando você for criar um método, reflita sobre:
- Esse método é necessário?
- Esse método recebe parâmetro(s)? Eu vou usar esse(s) parâmetro(s) na lógica que o método deve aplicar?
Dependendo da resposta, você começa a melhorar teu código, a criar um código mais limpo, mais elegante, menos acoplado, mais coeso e mais de acordo com as melhores práticas.
Sobre a questão:
Você deve implementar o actionListener do botão em questão e nele colocar algo como:
String textoDoJTextFieldDasHoras = jTextFieldDasHoras.getText();
setCargaDeHoras(Integer.parseInt(textoDoJTextFieldDasHoras));
verTipo();