Witam mam pewien problem i nie mam pomysłu. Jak widać niżej mam dwie klasy *controllera i *logic. Po kliknięciu w button uruchamia się funkcja actionAfterClick() i wykonuje się kod który jest zapisany w klasie AddContractLogic w funkcji setValueControls(). I to wszystko działa w porządku. W funkcji setValueControls() pobieram wartości z kontrolek itp. Chodzi mi o to że pobrane wartości chciałbym wykorzystać w innej metodzie w tej samej klasie. Jednak nie mam dostępu do tych wartości (zmiennych) ponieważ są lokalne w danej funkcji. Nie mam pojęcia jak je zainicjować globalnie w tej klasie. Bo jak zrobię jako pole np private boolean isAgreement ; to nie mogę na nich działać ponieważ jeszcze nie mają pobranych wartości z kontrolek. Chyba że powinienem zwrócić wszystkie te wartości z tej metody setValueControls() ale jest tutaj kilka różnych obiektów a z tego co wiem to nie można zwrócić więcej niż jednej.
package com.controller;
import com.logic.AddContractLogic;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.*;
import java.net.URL;
import java.util.ResourceBundle;
public class AddContractController implements Initializable {
@FXML
private DatePicker contractDatePicker;
@FXML
private RadioButton contractRadioButton;
@FXML
private RadioButton agreementRadioButton;
@FXML
private Spinner<Double> provisionSpinner;
@FXML
private TextField nameContractField;
@FXML
private Label statusLabel;
@FXML
private ToggleGroup toggleGroup1;
SpinnerValueFactory.DoubleSpinnerValueFactory spinner = new SpinnerValueFactory.DoubleSpinnerValueFactory(1,400,12.5);
public DatePicker getContractDatePicker() {
return contractDatePicker;
}
public RadioButton getContractRadioButton() {
return contractRadioButton;
}
public RadioButton getAgreementRadioButton() {
return agreementRadioButton;
}
public Spinner<Double> getProvisionSpinner() {
return provisionSpinner;
}
public TextField getNameContractField() {
return nameContractField;
}
public Label getStatusLabel() {
return statusLabel;
}
public ToggleGroup getToggleGroup1() {
return toggleGroup1;
}
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
provisionSpinner.setValueFactory(spinner);
provisionSpinner.setEditable(true);
toggleGroup1 = new ToggleGroup();
contractRadioButton.setToggleGroup(toggleGroup1);
agreementRadioButton.setToggleGroup(toggleGroup1);
contractRadioButton.setSelected(true);
}
@FXML
public void actionAfterClick(){
AddContractLogic logic = new AddContractLogic();
logic.setValueControls(this);
}
}
package com.logic;
import com.controller.AddContractController;
import java.time.LocalDate;
public class AddContractLogic {
public void setValueControls(AddContractController add){
LocalDate date = add.getContractDatePicker().getValue();
System.out.println(date);
double provisionValue = add.getProvisionSpinner().getValue();
System.out.println(provisionValue);
String textContract = add.getNameContractField().getText();
System.out.println(textContract);
boolean isAgreement = add.getAgreementRadioButton().isSelected();
System.out.println(isAgreement);
boolean isContract = add.getContractRadioButton().isSelected();
System.out.println(isContract);
}
}