Я делаю простую программу, в которой я пытаюсь добавить строку из TextField в ListView в другой сцене.Проблема в том, что я получаю исключение NullPointerException, когда я передаю строку в метод, который добавит ее в список.
Вот код для контроллера основной сцены:
import java.io.IOException;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
public class MainPageController {
@FXML TextField txtfield;
public void addButton(ActionEvent event) {
String a=txtfield.getText();
FXMLLoader loader= new FXMLLoader();
loader.setLocation(getClass().getResource("/progra/view/ListView.fxml"));
ListController obj=loader.getController();
obj.addList(a);// <----NullPointerException
}
public void openList(ActionEvent event) throws IOException {
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/program /view/ListView.fxml"));
Parent root1 = (Parent) fxmlLoader.load();
Stage stage = new Stage();
stage.setScene(new Scene(root1));
stage.show();
}
}
Вот код для контроллера списка:
import javafx.fxml.FXML;
import javafx.scene.control.ListView;
public class ListController{
@FXML
ListView<String> listofstrs;
public void addList(String a) {
listofstrs.getItems().add(a);
}
}
Что мне делатьнужно сделать, чтобы это исправить?Если я могу добавить, возможно ли добавить переменные в ListView (или любые другие текстовые контейнеры) на другой стадии / сцене, не открывая сцену / сцену, где она содержится, и когда вы откроете ее, вы увидите то, что вы добавили?Если да, что мне нужно добавить?