用戶單擊一個按鈕可打開彈出的第二個場景,該場景允許用戶選擇一些值,然後關閉選區並將其傳遞到第一個場景。將參數從具有自己控制器的彈出窗口場景傳遞到主控制器JavaFX
第一個控制器
Set<String> set;
public void initialize(URL url, ResourceBundle rb){
set = new TreeSet<String>():
}
@FXML
public Set<String> addValue (MouseEvent e) throws IOException {
Stage stage = new Stage();
root = FXMLoader.load(getClass).getResources(2ndFXML.fxml);
stage.initModality(Modality.APPLICATION_MODAL);
stage.iniOwner(clickedButton.getScene().getWindow();
stage.showAndWait():
return set;
}
第二控制器
@FXML
public void addSelection (MouseEvent e) throws IOException {
if (event.getSource() == button){
stage = (Stage) button.getScene().getWindow();
set.addAll(listSelection)
stage.close
}
但值永遠不會使它回到第一個控制器。
因爲你沒有添加任何東西到'Set'!如我錯了請糾正我。用戶從哪裏選擇值?它是一個ListView嗎? – Yahya
在事件處理程序中返回值絕對沒有意義。由於您實際上沒有調用該方法(它是由JavaFX事件處理框架調用的),因此您將永遠無法處理您返回的值。無論如何,'set'是什麼:它在哪裏定義,你在哪裏填充它?你真的想在第一個控制器中用它做什麼? –
更新了這個問題。我將從列表視圖中選擇的內容添加到集合中,並嘗試將其傳遞給第一個控制器 – Moe