我加載一個FXML文件中的下列方式如何訪問JavaFX組件在控制器的構造函數
FXMLLoader loader = new FXMLLoader(getClass().getResource("register.fxml"));
Controller c = new Controller("Welcome to EAST");
loader.setController(c);
Scene scene = new Scene(loader.load());
fx.setScene(scene); // fx is a JFXPanel which is used to integrate FX in Swing
上面的代碼工作正常,現在我要訪問的textFields
的默認值register.fxml
在Controller類的構造函數中,但它給出了以下錯誤:線程「JavaFX Application Thread」中的異常java.lang.NullPointerException。
注意:我已經給textFields分配了一些默認值,這就是我想要訪問它們的原因。
以下是我的控制器類
Controller.java
public class Controller {
@FXML
private TextField username;
@FXML
private PasswordField pass;
@FXML
private TextField ip;
@FXML
private TextField sPort;
@FXML
private TextField fPort;
public Controller(String str) {
System.out.println(str);
System.out.println(ip.getText()); // this line gives the NullPointerException Error
}
@FXML
private void login() {
}
@FXML
private void register(){
}
@FXML
private void cancel(){
System.exit(0);
}
}
任何建議,將不勝感激。謝謝:)
的'初始化()'(不'的init()')方法被調用自動成爲FXMLLoader一旦創建並注入所有的'@ FXML'註解領域。 –
Thanx的提示! –