0
我想通過使用在主函數中創建的引用來更改Controller類外部的FXML元素的文本,但是我得到一個NullPointerException。從引用外部更改FXML元素 - NullPointerException
類控制器:
public class Controller implements Initializable {
@FXML
public ComboBox<String> comboBoxSelectPort;
@Override
public void initialize(URL url, ResourceBundle rb) {
Language l = new Language();
l.setLanguage();
comboBox.setPromptText("New Text"); // This works!
}
}
類語言:
public class Language {
private Controller c = Main.controller;
public void setLanguage(){
c.comboBox.setPromptText("New Text"); // This is NOT working!
}
}
UPDATE 1:
類主要:
public class Main extends Application {
public static Stage stage;
public static Controller controller;
@Override
public void start(Stage stage) throws Exception {
FXMLLoader loader = new FXMLLoader(getClass().getResource("Scene.fxml"));
Parent root = (Parent) loader.load();
controller = (Controller) loader.getController();
System.out.println(controller); // Works!
....
但在控制器或語言類
System.out.println(Main.controller); // Output: Null
更新2:
這個問題似乎是,該控制器在主創建befor創建參考。