На моей первой сцене пользователь выбирает команду из таблицы, а на следующей - информация об этой команде.Моя проблема, однако, заключается в передаче строки (сохраненной в виде метки) в следующую сцену, которая показывает результаты выбранных команд.
public void goResults(ActionEvent event) throws IOException{
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("TeamResults.fxml"));
Parent tableViewParent = (Parent)loader.load();
Scene tableViewScene = new Scene(tableViewParent);
//access controller and call method
TeamResultsController controller = loader.getController();
controller.initData(teamLabel.getText());
Это я передаю название команды (teamLabel) из сцены 2 в сцену 3, когдакнопка результатов выбрана.
private String team;
public void initData(String teamName) {
this.team = teamName;
Это функция, в которую я передаю значение метки и устанавливаю его в string team.
Однако, если я пытаюсь вывести переменную team внеэта функция, его значение равно нулю.Как заставить его хранить значение вне initData?
Например:
public void initialize(URL url, ResourceBundle rb) {
try {
Connection con = DBConnector.connect();
ResultSet rs = con.createStatement().executeQuery("SELECT DISTINCT t1.title AS title, t2.title AS title2, g.score1, g.score2 FROM games g INNER JOIN teams AS t1 ON g.team1_id = t1.id INNER JOIN teams AS t2 ON g.team2_id = t2.id WHERE g.team1_id ="+team +"OR g.team2_id ="+team+"");
while(rs.next()){
reslist.add(new TeamResultsTable(rs.getString("title"), rs.getString("title2"), rs.getInt("score1"), rs.getInt("score2")));
}
} catch (SQLException ex) {
Logger.getLogger(TableController.class.getName()).log(Level.SEVERE, null, ex);
}
title.setCellValueFactory(new PropertyValueFactory<TeamResultsTable, String>("title"));
title2.setCellValueFactory(new PropertyValueFactory<TeamResultsTable, String>("title2"));
score1.setCellValueFactory(new PropertyValueFactory<TeamResultsTable, Integer>("score1"));
score2.setCellValueFactory(new PropertyValueFactory<TeamResultsTable, Integer>("score2"));
gameTable.setItems(reslist);
Я пытаюсь передать его в этот запрос (пока не беспокойтесь о подготовленном выражении)).
Какой метод вы бы порекомендовали?Я понимаю, что это якобы похоже на другие примеры темы, но я еще не сопоставил это с моими.Я извиняюсь за свою неопытность, но какая-то основа была бы невероятной.
Однако любая помощь велика, спасибо.