Pokaż kod kontrolerów i to przekazanie buttona. I odpowiedz na pytanie: czemu robisz to przekazanie kontrolki?
Chcę użyć buttona w MainControllerze bo muszę operować na obiekcie utworzonym właśnie w tej klasie, dlatego w funkcji initialize() chciałem zapisać całą logikę która się na tych obiektach(empOps, routOps) opiera.
Jestem bardzo początkujący i z góry przepraszam za trywialne błędy logiczne.
MainController.java
package pl.SeVeT.AppForPPAlpen;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import pl.SeVeT.AppForPPAlpen.data.Employee;
import pl.SeVeT.AppForPPAlpen.data.EmployeesOperations;
import pl.SeVeT.AppForPPAlpen.data.RoutesOperations;
import pl.SeVeT.AppForPPAlpen.fileManager.DataManager;
import pl.SeVeT.AppForPPAlpen.controllers.*;
import java.io.IOException;
import java.util.Map;
public class MainController {
public EmployeesOperations empOps = new EmployeesOperations();
public RoutesOperations routOps = new RoutesOperations();
@FXML
private VBox mainVBox;
@FXML
private Label welcomeLabel;
@FXML
private AddEmployeeController addEmployeeController = new AddEmployeeController();
public void loadData(String routesFileName, String employeesFileName) {
DataManager dataManager = new DataManager();
empOps.setEmployees(dataManager.loadEmployees(employeesFileName));
routOps.setRoutes(dataManager.loadRoutes(routesFileName));
}
public void buildView(Stage stage, String resourceName) throws IOException {
Parent root = FXMLLoader.load(getClass().getResource(resourceName));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
public void initialize(){
Button addEmployeeApplyButton = addEmployeeController.getApplyButton();
addEmployeeApplyButton.setOnAction(actionEvent -> {
empOps.addEmployee(
new Employee(addEmployeeController.getNameField().getText(),
addEmployeeController.getLastNameField().getText(),
addEmployeeController.getPeselField().getText(),
addEmployeeController.getBirthdateField().getText(),
addEmployeeController.getAddressField().getText(),
addEmployeeController.getPhoneNumberField().getText()
)
);
});
}
}
AddEmployeeController.java
package pl.SeVeT.AppForPPAlpen.controllers;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import pl.SeVeT.AppForPPAlpen.MainController;
import pl.SeVeT.AppForPPAlpen.data.Employee;
public class AddEmployeeController {
@FXML
private Button clearButton;
@FXML
private Button applyButton;
@FXML
private TextField nameField;
@FXML
private TextField lastNameField;
@FXML
private TextField peselField;
@FXML
private TextField birthdateField;
@FXML
private TextField addressField;
@FXML
private TextField phoneNumberField;
public Button getClearButton() {
return clearButton;
}
public Button getApplyButton() {
return applyButton;
}
public TextField getNameField() {
return nameField;
}
public TextField getLastNameField() {
return lastNameField;
}
public TextField getPeselField() {
return peselField;
}
public TextField getBirthdateField() {
return birthdateField;
}
public TextField getAddressField() {
return addressField;
}
public TextField getPhoneNumberField() {
return phoneNumberField;
}
}