-1

Good morning,

I'm having one problem on JavaFX. I want to get a selectedItem on a ListView. On the selected scene "Class: AdminJornada" it retrives the value correctly "Jornada 1". But in another scene "Class: AdminJogosDAO", if I create an object to get the value from the Class AdminJornada, it says "Null" because I close the last scene and open an new one.

Class AdminJornada:

package superliga.trabalho2_grupo1_superliga.Controllers;

import Classes.Clube;
import Classes.Jornada;
import Classes.dao.JornadaDAO;
import Connect.ConnectionBd;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.stage.Stage;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
/**
 * Esta classe extende os atributos e métedos do Controller AdminJogos
 * Apresenta todos os métedos necessários para esta classe funcionar
 */
public class AdminJornada extends AdminJogos {
    Button but;
    @FXML
    Label label;
    JornadaDAO dao= new JornadaDAO();
    Jornada jorn =new Jornada();
    @FXML
    protected Button button;
    @FXML
    private ListView<String> admJornadalistview = new ListView<String>();
    private String jornadaatual;
    @FXML
    private Label jornadaLabel;

    JornadaDAO jDAO = new JornadaDAO();
    ArrayList<Jornada> jnor = new ArrayList<>();

    public void initialize(){
        jnor = jDAO.findJornada();
       for (Jornada j : jnor) {
           admJornadalistview.getItems().add(
                   /*"Jornada " +*/ j.getNum_jornada()
           );
       }
        admJornadalistview.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
            @Override
            public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
                jornadaatual = admJornadalistview.getSelectionModel().getSelectedItem();
                jornadaLabel.setText(jornadaatual);
            }
        });
    }

    @FXML
        protected void switchToAdminJogos() throws Exception {
        AdminJogos adm1 = new AdminJogos();
           if (jornadaLabel.getText().isEmpty()){
               /**
                * Aviso quando algo corre mal
                */
               Alert alert = new Alert(Alert.AlertType.WARNING);
               alert.setTitle("Aviso");
               alert.setHeaderText("Sem seleção");
               alert.setContentText("Selecione uma jornada da lista acima.");
               alert.showAndWait();
            } else {
               Stage window = (Stage) button.getScene().getWindow();
               window.close();
               SwitchMenus.open("AdminJogos", "SUPERLIGA >> Admin >> " + jornadaLabel.getText() + " >> Jogos");
               //Altera o valor na label do Controller AdminJogos
               labelJogosStatic.setText(jornadaLabel.getText());
           }
        }

    @FXML
    public void onVoltar(ActionEvent actionEvent) throws Exception {
        SwitchMenus.open("MenuPrincipal", "SUPERLIGA | Menu Principal");
    }

    public void onAdicionarJornada(ActionEvent actionEvent) throws Exception {

        label.setText("deu");
        JornadaDAO jornadi=null;
        jornadi.insertJornada(jorn);
    }

    public String getListView(){
        return admJornadalistview.getSelectionModel().getSelectedItem();
    }
}

I will need the selected item from ListView to create a query to search on T-SQL, the query it's in Class: AdminJogosDAO.

  • maybe show the location in `AdminJogosDAO` where your error occurs – tobi1805 Jun 02 '22 at 11:27
  • 2
    [mcve] please .. and stick to java naming conventions (here: no underscores, package names should be all lower-case) – kleopatra Jun 02 '22 at 12:23
  • 2
    It sounds like you need to learn https://stackoverflow.com/questions/32342864/applying-mvc-with-javafx or https://stackoverflow.com/questions/14187963/passing-parameters-javafx-fxml. – SedJ601 Jun 02 '22 at 14:25

0 Answers0