Hej, ostatnio zacząłem robić projekt w JavaFX, gdzie muszę zaimplementować listę todo. Jednakże nie wiem jak mógłbym przesyłać dane między oknami. Ogólnie mam główne okno, po czym wciskając przycisk add new task wyskakuje nowe okno, gdzie uzupełniam dane zadania i chciałbym zatwierdzając ten obiekt(klasa przetrzymująca same dane typu tytuł, priorytet itp.) chciałbym wysłać go do pierwszego okna, gdzie pojawiłby się na ListView. Mój kod obecnie wygląda tak:
Główny kontroler"
public class Controller {
TaskDescription tmp;
@FXML
private ListView<TaskDescription> toDo;
@FXML
private ListView<TaskDescription> inProgress;
@FXML
private ListView<TaskDescription> doneTasks;
@FXML
private Button addTask;
ObservableList<TaskDescription> list = FXCollections.observableArrayList();
@FXML
void addNewTask(ActionEvent event) throws Exception {
FXMLLoader loader = new FXMLLoader(getClass().getResource("NewTask.fxml"));
Parent root= (Parent) loader.load();
Stage stage = new Stage();
stage.setScene(new Scene(root, 600, 500));
stage.showAndWait();
NewTaskController getControl=loader.getController();
toDo.setItems(list);
}
a drugi:
public class NewTaskController {
TaskDescription tmp;
@FXML
private TextField taskTitle;
@FXML
private ComboBox<String> choosePriority;
@FXML
private String lowTask;
@FXML
private String highTask;
@FXML
private DatePicker chooseDate;
@FXML
private TextArea textArea;
@FXML
private Button addTaskButton;
@FXML
void addTask(ActionEvent event) {
tmp.title=taskTitle.getText();
tmp.priority=choosePriority.getValue();
tmp.date=chooseDate.getValue();
tmp.description=textArea.getText();
addTaskButton.getScene().getWindow().hide();
}
}
acid131