Erro non static method exibir() cannot be referenced from a static context

Boa noite.

Estou tentando exibir o método “exibir()” só que ele fica dando o seguinte erro:

non static method exibir() cannot be referenced from a static context

FXMLDocumentController

  package prjjoao;

import com.jfoenix.controls.JFXButton;
import com.jfoenix.controls.JFXComboBox;
import com.jfoenix.controls.JFXTextArea;
import com.jfoenix.controls.JFXTextField;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Spinner;
import javafx.scene.control.SpinnerValueFactory;

public class FXMLDocumentController implements Initializable {
    final double valor = 5.00;
    String nome;
    String curso;
    double notaProva;
    double notaTrabalho;
    
    @FXML
    private JFXTextField txtNome;
    
    @FXML
    private JFXComboBox cbxCurso;
    
    @FXML
    private Spinner<Double> spnProva;
    SpinnerValueFactory<Double> spn1 = new SpinnerValueFactory.DoubleSpinnerValueFactory(0.00, 10.00, valor);
    
    @FXML
    private Spinner<Double> spnTrabalho;
    SpinnerValueFactory<Double> spn2 = new SpinnerValueFactory.DoubleSpinnerValueFactory(0.00, 10.00, valor);
    
    @FXML
    private JFXButton btnCadastrar;
    private JFXButton btnExibir;
    
    @FXML
    private JFXTextArea txtAExibir;
    
    private List<Curso> cursos = new ArrayList();
    
    private ObservableList<Curso> obsCurso;
    
    @FXML
    public void cadastrar(ActionEvent ev){
           nome = txtNome.getText();
           curso = cbxCurso.getPromptText();
           notaProva = spnProva.getValue();
           notaTrabalho = spnTrabalho.getValue();
           
           Aluno Aluno = new Aluno(nome, curso, notaProva, notaTrabalho);
    }
    
    public void exibir(ActionEvent ev){
        txtAExibir.setText(Aluno.exibir());
    }

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        carregaCursos();
        spnProva.setValueFactory(spn1);
        spnTrabalho.setValueFactory(spn2);  
    }
    
    public void carregaCursos(){
        Curso Informatica = new Curso(1, "Informatica");
        Curso Nutricao = new Curso(2, "Nutrição");
        Curso Quimica = new Curso(3, "Quimica");
        Curso Mineracao = new Curso(4, "Mineração");
        
        cursos.add(Informatica);
        cursos.add(Nutricao);
        cursos.add(Quimica);
        cursos.add(Mineracao);
    
        obsCurso = FXCollections.observableArrayList(cursos);
        cbxCurso.setItems(obsCurso);
    }
    
}

Aluno.java
package prjjoao;

public class Aluno{

private String nome;
private String curso;
private double notaProva;
private double notaTrabalho;

public Aluno(String nome, String curso, double notaProva, double notaTrabalho){
    this.nome = nome;
    this.curso = curso;
    this.notaProva = notaProva;
    this.notaTrabalho = notaTrabalho;
}

public double calcularMediaAritimetica(){
    return (getNotaProva() + getNotaTrabalho()) / 2;
}

public boolean estaAprovado(){       
    return ((getNotaProva() + getNotaTrabalho()) / 2 <5.00);      
}

public String exibir(){
    return "ALUNO: "    + getNome()         + "\n" + 
           "CURSO: "    + getCurso()        + "\n" +
           "PROVA: "    + getNotaProva()    + "n"  +
           "TRABALHO: " + getNotaTrabalho() + "\n" +
           "SITUAÇÃO: " + estaAprovado();
}

public String teste(){
    return "teste";
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public String getCurso() {
    return curso;
}

public void setCurso(String curso) {
    this.curso = curso;
}

public double getNotaProva() {
    return notaProva;
}

public void setNotaProva(double notaProva) {
    this.notaProva = notaProva;
}

public double getNotaTrabalho() {
    return notaTrabalho;
}

public void setNotaTrabalho(double notaTrabalho) {
    this.notaTrabalho = notaTrabalho;
}

}

Você colocou o nome da classe seguido do nome do método, essa é a sintaxe pra invocar métodos estáticos.

Não é isso que você quer.

Você precisa ter uma variável de instância do tipo Aluno e aí chamar o método a partir do nome da variável.

1 curtida