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.