У меня два класса AddContractController
и AddContractLogic
.
Я получаю значение от контролов в функции setValueControls
, и все в порядке. Я печатаю значения, и я получаю значения. Однако в том же классе я бы использовал эти значения в новой функции. Как получить доступ к переменным из функции setValueControls
. Я пробовал несколько способов, но я получаю исключение NullPinterException, потому что эти переменные инициируются только во время после нажатия кнопки.
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;
import java.util.ArrayList;
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);
}
}