Как работать с элементами(Label, TextView и т.д), контроллера из другого класса(не из другой сцены, а из другого класса!)

Ох, боже, столько ответов, а все не уточняют, как правильно манипулировать элементами контроллера в java классе. Допустим я не хочу работать в Controller-е, так как как это не удобно. Я подготовил небольшой проект, у меня есть сценка, где при нажатии кнопки, он считывает это нажатие в Controllere и передаёт обработку уже в другой класс Test.java, где есть метод test(), он меняет LabelTest("Тест"), на ("Тест прошёл успешно"). Но появляется ошибка NullPointerException.

Код:

package application;
    
import javax.print.DocFlavor.URL;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;


public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {
            java.net.URL fxmlURL = getClass().getResource("xmlFiles/oneOkon.fxml");
            Parent root = FXMLLoader.load(fxmlURL);
            Scene scene = new Scene(root);
            
            primaryStage.setTitle("Hello world");
            primaryStage.setScene(scene);
            primaryStage.show();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
    
    public static void main(String[] args) {
        launch(args);
    }
}
package application;

import javafx.fxml.FXML;

import javafx.event.ActionEvent;

import javafx.scene.control.Label;

public class MainController {
    @FXML
    private Label LabelTest;

    public Label getLabelTest() {
        return LabelTest;
    }
    
    @FXML
    public void buttonTest(ActionEvent event) {
        Test.test();
    }
}

package application;

public class Test {
    
    public static void test() {
        MainController t = new MainController();
        t.getLabelTest().setText("Тест прошёл успешно");
    }
}

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.text.Font?>

<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/18" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainController">
   <top>
      <Label fx:id="LabelTest" prefHeight="76.0" prefWidth="503.0" text="Тест" BorderPane.alignment="CENTER">
         <font>
            <Font size="30.0" />
         </font>
      </Label>
   </top>
   <center>
      <Button mnemonicParsing="false" onAction="#buttonTest" prefHeight="187.0" prefWidth="526.0" text="Проверка" BorderPane.alignment="CENTER" />
   </center>
</BorderPane>


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