Estou com esse exercício para resolver, da faculdade, mas não estou conseguindo entender muito bem. Estou lendo, pesquisando, mas não consegui até agora. Alguém pode me ajudar?
O exercício é seguinte:
Você trabalha na área de tecnologia da informação (TI) em uma escola. A secretária da instituição solicitou a você a criação de um recurso no sistema que permita inserir a nota obtida pelo aluno em determinada disciplina. A nota deve ser definida em um campo específico em formato decimal, porém retornando ao cliente, após inserção do valor, o resultado obtido.
Você deverá criar uma interface com três constantes:
“Parabéns, você atingiu todos os indicadores de avaliação com excelência”;
“Parabéns, você obteve aproveitamento satisfatório nos indicadores de avaliação”;
“Você não atingiu o mínimo esperado para aprovação”.
Para atender ao pedido, você deverá:
utilizar Java na construção do código;
criar uma classe para implementar a interface;
criar uma variável na classe para receber a opção digitada pelo usuário;
utilizar o método showInputDialog() da classe JOptionPane para solicitar as opções;
criar uma estrutura de decisão para verificar a opção digitada e printar na tela o conceito e sua descrição;
criar um projeto denominado ConceitoAluno; dentro dele, criar um pacote chamado interfaces, e, dentro do pacote, a interface e a classe para implementá-la.
O enunciado está bastante objetivo, o que exatamente você não entendeu?
Quando vejo um enunciado desses, fico desapontado que ainda existem professores insistindo em ensinar coisas erradas.
Usar interfaces para definir constantes é um Anti-Pattern.
Constantes você define em classes ou utiliza enum.
Então, eu não consegui encontrar a forma certa de adicionar o JOpition, fiz de diversas maneiras, e todas me trouxeram resultados com erro, ou que simplesmente não funcionavam.
Creio q seja pelo fato de n conseguir usar o switch case da forma devida em meio a esse exercício em específico.
É que agora não estou com meu notebook, mas jaja mando mais ou menos oq eu consegui fazer.
public interface Constantes {
public String E = "Parabéns, você atingiu todos os indicadores de avaliação com excelência";
public String S = "Parabéns, você obteve aproveitamento satisfatório nos indicadores de avaliação";
public String M = "Você não atingiu o mínimo esperado para aprovação";
}
import javax.swing.JOptionPane;
public class Geral implements Constantes{
public static void main(String[] args) {
Geral geral = new Geral();
geral.executar();
}
public void executar() {
String opcao = solicitarOpcaoDoUsuario();
String conceito = avaliarConceito(opcao);
apresentar(opcao, conceito);
}
private String avaliarConceito(String opcao) {
return null;
}
private String solicitarOpcaoDoUsuario() {
Object mensagem = "Selecione a nota do aluno";
String titulo = "Entrada de dados";
double[] valoresSelecionaveis = new double[] { 1,2,3,4,5,6,7,8,9,10 };
Object valorInicialSelecionado = 0;
final String opcao = JOptionPane.showMessageDialog(mensagem, titulo, valoresSelecionaveis, valorInicialSelecionado);
return opcao;
}
private String avaliarConceito(int opcao) {
switch (opcao) {
case 10:
return E;
case 9:
return E;
case 8:
return E;
case 7:
return S;
case 6:
return S;
case 5:
return M;
case 4:
return M;
case 3:
return M;
case 2:
return M;
case 1:
return M;
case 0:
default:
return M;
}
}
private void apresentar(String opcao, String conceito) {
Object mensagem = "A nota do aluno é: " + opcao + "\n" + conceito;
String titulo = "Resultado";
int tipoMensagem = JOptionPane.INFORMATION_MESSAGE;
JOptionPane.showMessageDialog(null, mensagem, titulo, tipoMensagem);
}
}
Por enquanto foi isso que eu consegui fazer, mas o erro “The method avaliarConceito(int) from the type Geral is never used locallyJava(603979894)” e o “JOptionPane is not applicable for the arguments (Object, String, double[], Object)” estão persistindo.
Sou graduanda em design e por alguma razão a faculdade quer que eu entenda linguagem de programação quando eu deveria criar interface. Estou com uma questão EXATAMENTE IGUAL e não faço ideia do que seja, alguém me ajuda pfvr :')
final String opcao = JOptionPane.showMessageDialog(mensagem, titulo, valoresSelecionaveis, valorInicialSelecionado);
Quando vc invoca o método showMessageDialog da classe JOptionPane, n tem retorno, o método é void, pois será apenas um aviso para o usuário, e não uma decisão, onde deveria escolher um Sim/Não, que nesse caso, teria que ser showConfirmDialog, e o retorno será um int e não String.
O primeiro argumento, é a referencia ao componente Pai, ou seja, o JFrame, mas vc pode passar como null também, a diferença é que se passar o JFrame, a mensagem será exibida centralizada nele, e já null, ao centro da tela, sem nenhuma referencia.