JavaFX - Использовать элементы одного класса в другом классе?

JavaFX. Мне было нужно, чтобы при нажатии на Button у меня в ListView появлялся новый элемент.

Проблема.

Кнопка и Список принадлежат разным сценами и находятся, соотв., в разных классах. Вся саламандра происходит в специальном JavaFX методе initialize(), который ломает всё и вся (прога не запускается), когда я создаю в нём экземпляр класса, из которого я хочу использовать кнопку, и использую эту кнопку в классе со списком. - Краш.

Проблемное место я указал.

Класс с первой сценой, на которой есть `ListView`
package sample;

import javafx.fxml.FXML;
import javafx.scene.control.*;
import javafx.util.Duration;


public class ScenePrimary
{
    @FXML
    public Button plusButton;

    @FXML
    public ListView<String> characterList;

    @FXML
    public TextField nameField;
    @FXML
    public TextField surnameField;
    @FXML
    public TextField nationalityField;


    public void initialize()
    {
        Tooltip plusButtonTooltip = new Tooltip("New character");
        plusButtonTooltip.setShowDelay(Duration.ZERO);
        plusButton.setTooltip(plusButtonTooltip);
        plusButton.setOnAction(e -> {
            Main.stageSecondary.show();
        });

        SceneSecondary SS = new SceneSecondary();         // вот здесь 
        SS.nextPageButton1.setOnAction(e -> {             //
            characterList.getItems().add("test_item");    //
        });                                               //
    }
}
Класс со второй сценой, на которой есть `Button`
package sample;

import javafx.fxml.FXML;
import javafx.scene.control.*;

public class SceneSecondary
{
    @FXML
    public RadioButton maleRadioButton;
    @FXML
    public RadioButton femaleRadioButton;
    @FXML
    public RadioButton nonBinaryRadioButton;

    @FXML
    public Button nextPageButton1;
    @FXML
    public Button clearButton;

    @FXML
    public TextField creatorNameField;
    @FXML
    public TextField creatorSurnameField;

    @FXML
    public ChoiceBox<String> nationalityChoiceBox;

    @FXML
    public Spinner<Integer> ageCounter;

    public void clearButtonAction()
    {
        ageCounter.setValueFactory(new SpinnerValueFactory.IntegerSpinnerValueFactory(0,100,0));
        creatorNameField.setText("");
        creatorSurnameField.setText("");
        nationalityChoiceBox.setValue("indefinite");
        femaleRadioButton.setSelected(false);
        maleRadioButton.setSelected(false);
        nonBinaryRadioButton.setSelected(false);
    }

    public void initialize()
    {
        maleRadioButton.setOnAction(e -> {femaleRadioButton.setSelected(false); nonBinaryRadioButton.setSelected(false);});
        femaleRadioButton.setOnAction(e -> {maleRadioButton.setSelected(false); nonBinaryRadioButton.setSelected(false);});
        nonBinaryRadioButton.setOnAction(e -> {maleRadioButton.setSelected(false); femaleRadioButton.setSelected(false);});

        nationalityChoiceBox.getItems().addAll("indefinite","English","American","Mexican","Brazilian","Spanish","Italian","Turkish","Polish","Russian","Chinese","Japanese");
        nationalityChoiceBox.setValue("indefinite");

        ageCounter.setValueFactory(new SpinnerValueFactory.IntegerSpinnerValueFactory(0,100,0));
        ageCounter.setEditable(true);

        clearButton.setOnAction(e -> {
            clearButtonAction();
        });

        nextPageButton1.setOnAction(e ->
        {
            Main.stageSecondary.close();
            Main.stageThirdary.show();
        });
    }
}

Полный проект с 4 классами я залил на Яндекс диск - посмотрите, пожалуйста

https://yadi.sk/d/S248vwsrYnX8Bw

Спасибо за помощь заранее


Ответы (0 шт):