При запуске приложения получаю ошибку
Caused by: java.lang.NullPointerException: Cannot invoke "javafx.scene.control.Button.setOnAction(javafx.event.EventHandler)" because "this.ToStajerTwo" is null
at sample.Controller.initialize(Controller.java:84)
84 строка - ToStajerTwo.setOnAction(event -> {
Мейн:
package sample;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
primaryStage.setTitle("Mod Helper");
primaryStage.setScene(new Scene(root, 800, 500));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Контроллер:
package sample;
import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;
public class Controller {
@FXML
private ResourceBundle resources;
@FXML
private URL location;
@FXML
private Button Stajer;
@FXML
private Button Helper;
@FXML
private Button Moderator;
@FXML
private Button SeniorModerator;
@FXML
private Button ToStajerTwo;
@FXML
private Button BackStajer;
@FXML
public void initialize() {
Stajer.setOnAction(event -> {
try {
Parent root = FXMLLoader.load(getClass().getResource("Stajer.fxml"));
Stage window = (Stage) Stajer.getScene().getWindow();
window.setScene(new Scene(root, 800, 500));
} catch (IOException e) {
e.printStackTrace();
}
});
Helper.setOnAction(event -> {
try {
Parent root = FXMLLoader.load(getClass().getResource("Helper.fxml"));
Stage window = (Stage) Stajer.getScene().getWindow();
window.setScene(new Scene(root, 800, 500));
} catch (IOException e) {
e.printStackTrace();
}
});
Moderator.setOnAction(event -> {
try {
Parent root = FXMLLoader.load(getClass().getResource("Moderator.fxml"));
Stage window = (Stage) Stajer.getScene().getWindow();
window.setScene(new Scene(root, 800, 500));
} catch (IOException e) {
e.printStackTrace();
}
});
SeniorModerator.setOnAction(event -> {
try {
Parent root = FXMLLoader.load(getClass().getResource("SeniorModerator.fxml"));
Stage window = (Stage) Stajer.getScene().getWindow();
window.setScene(new Scene(root, 800, 500));
} catch (IOException e) {
e.printStackTrace();
}
});
ToStajerTwo.setOnAction(event -> {
try {
Parent root = FXMLLoader.load(getClass().getResource("StajerTwo"));
Stage window = (Stage) Stajer.getScene().getWindow();
window.setScene(new Scene(root, 800, 500));
} catch (IOException e) {
e.printStackTrace();
}
});
BackStajer.setOnAction(event -> {
try {
Parent root = FXMLLoader.load(getClass().getResource("Stajer"));
Stage window = (Stage) Stajer.getScene().getWindow();
window.setScene(new Scene(root, 800, 500));
} catch (IOException e) {
e.printStackTrace();
}
});
}
}
Stajer.fxml:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.Cursor?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ButtonBar?>
<?import javafx.scene.effect.Glow?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="500.0" prefWidth="800.0" style="-fx-background-color: #f0f8ff;" xmlns="http://javafx.com/javafx/16" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
<children>
<AnchorPane layoutY="-4.0" prefHeight="84.0" prefWidth="800.0" style="-fx-background-color: #808080;" AnchorPane.bottomAnchor="420.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<Button fx:id="Stajer" layoutX="14.0" layoutY="33.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="107.0" style="-fx-background-color: #ffff00;" text="...">
<font>
<Font name="System Bold" size="12.0" />
</font>
<effect>
<Glow level="0.25" />
</effect>
<cursor>
<Cursor fx:constant="HAND" />
</cursor>
</Button>
<Button fx:id="Helper" layoutX="155.0" layoutY="33.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="107.0" style="-fx-background-color: #008000;" text="Помощник">
<font>
<Font name="System Bold" size="12.0" />
</font>
</Button>
<Button fx:id="Moderator" layoutX="534.0" layoutY="33.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="107.0" style="-fx-background-color: #8b00ff;" text="Модератор">
<font>
<Font name="System Bold" size="12.0" />
</font>
</Button>
<Button fx:id="SeniorModerator" layoutX="679.0" layoutY="33.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="107.0" style="-fx-background-color: #42aaff;" text="Старший модератор">
<font>
<Font name="System Bold" size="9.0" />
</font>
</Button>
</children>
</AnchorPane>
<AnchorPane layoutX="-1.0" layoutY="79.0" prefHeight="422.0" prefWidth="800.0" style="-fx-background-color: #adff2f;">
<children>
<AnchorPane layoutX="300.0" layoutY="14.0" prefHeight="34.0" prefWidth="200.0">
<children>
<Text layoutX="12.0" layoutY="25.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Доступные команды:" wrappingWidth="176.13671875">
<font>
<Font name="System Bold" size="16.0" />
</font>
</Text>
</children>
</AnchorPane>
<Text layoutX="14.0" layoutY="71.0" strokeType="OUTSIDE" strokeWidth="0.0" text="/god - Режим бога, бессмертие" wrappingWidth="344.13671875">
<font>
<Font name="System Bold" size="21.0" />
</font>
</Text>
<Text layoutX="14.0" layoutY="102.0" strokeType="OUTSIDE" strokeWidth="0.0" text="/helpop (/l) - Модераторский чат" wrappingWidth="365.13671875">
<font>
<Font name="System Bold" size="21.0" />
</font>
</Text>
<Text layoutX="14.0" layoutY="133.0" strokeType="OUTSIDE" strokeWidth="0.0" text="/invsee [ник] - Открывает инвентарь игрока" wrappingWidth="365.13671875">
<font>
<Font name="System Bold" size="21.0" />
</font>
</Text>
<Text layoutX="14.0" layoutY="195.0" strokeType="OUTSIDE" strokeWidth="0.0" text="/seen [ник] - Отображает когда игрок был в сети" wrappingWidth="365.13671875">
<font>
<Font name="System Bold" size="21.0" />
</font>
</Text>
<Text layoutX="17.0" layoutY="259.0" strokeType="OUTSIDE" strokeWidth="0.0" text="/whois [ник] - Отображает подробную информацию о игроке в онлайне" wrappingWidth="358.13671875">
<font>
<Font name="System Bold" size="21.0" />
</font>
</Text>
<Text layoutX="14.0" layoutY="350.0" strokeType="OUTSIDE" strokeWidth="0.0" text="/checkip [ник] - Отображает IP игрока, количество аккаунтов на айпи, расположение на карте" wrappingWidth="365.13671875">
<font>
<Font name="System Bold" size="21.0" />
</font>
</Text>
<Text layoutX="379.0" layoutY="71.0" strokeType="OUTSIDE" strokeWidth="0.0" text="/checkban [ник] - Отображает, забанен ли игрок, причина, кто забанил, количество варнов" wrappingWidth="365.13671875">
<font>
<Font name="System Bold" size="21.0" />
</font>
</Text>
<Text layoutX="379.0" layoutY="164.0" strokeType="OUTSIDE" strokeWidth="0.0" text="/ipreport - Отображает IP всех игроков на сервере, их аккаунты, забаненные аккаунты помечает красным цветом" wrappingWidth="365.13671875">
<font>
<Font name="System Bold" size="21.0" />
</font>
</Text>
<Text layoutX="379.0" layoutY="288.0" strokeType="OUTSIDE" strokeWidth="0.0" text="/history [ник] - Показывает выданные нарушения игроку" wrappingWidth="344.13671875">
<font>
<Font name="System Bold" size="21.0" />
</font>
</Text>
<Button fx:id="ToStajerTwo" layoutX="681.0" layoutY="330.0" mnemonicParsing="false" prefHeight="84.0" prefWidth="84.0" style="-fx-background-color: #ff0000;" text="→" textFill="WHITE">
<font>
<Font size="36.0" />
</font>
</Button>
<ButtonBar layoutX="389.0" layoutY="352.0" prefHeight="40.0" prefWidth="200.0" />
</children>
</AnchorPane>
</children>
</AnchorPane>
StajerTwo.fxml:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.Cursor?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.effect.Glow?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="500.0" prefWidth="800.0" style="-fx-background-color: #f0f8ff;" xmlns="http://javafx.com/javafx/16" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
<children>
<AnchorPane layoutY="-4.0" prefHeight="84.0" prefWidth="800.0" style="-fx-background-color: #808080;" AnchorPane.bottomAnchor="420.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<Button fx:id="Stajer" layoutX="14.0" layoutY="33.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="107.0" style="-fx-background-color: #ffff00;" text="...">
<font>
<Font name="System Bold" size="12.0" />
</font>
<effect>
<Glow level="0.25" />
</effect>
<cursor>
<Cursor fx:constant="HAND" />
</cursor>
</Button>
<Button fx:id="Helper" layoutX="155.0" layoutY="33.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="107.0" style="-fx-background-color: #008000;" text="Помощник">
<font>
<Font name="System Bold" size="12.0" />
</font>
</Button>
<Button fx:id="Moderator" layoutX="534.0" layoutY="33.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="107.0" style="-fx-background-color: #8b00ff;" text="Модератор">
<font>
<Font name="System Bold" size="12.0" />
</font>
</Button>
<Button fx:id="SeniorModerator" layoutX="679.0" layoutY="33.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="107.0" style="-fx-background-color: #42aaff;" text="Старший модератор">
<font>
<Font name="System Bold" size="9.0" />
</font>
</Button>
</children>
</AnchorPane>
<AnchorPane layoutX="-1.0" layoutY="79.0" prefHeight="422.0" prefWidth="800.0" style="-fx-background-color: #adff2f;">
<children>
<AnchorPane layoutX="300.0" layoutY="14.0" prefHeight="34.0" prefWidth="200.0">
<children>
<Text layoutX="12.0" layoutY="25.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Доступные команды:" wrappingWidth="176.13671875">
<font>
<Font name="System Bold" size="16.0" />
</font>
</Text>
</children>
</AnchorPane>
<Text layoutX="14.0" layoutY="71.0" strokeType="OUTSIDE" strokeWidth="0.0" text="/dupeip [ник] - Отображает информацию о игроке или IP адресе. Количество аккаунтов, состояние бана" wrappingWidth="344.13671875">
<font>
<Font name="System Bold" size="21.0" />
</font>
</Text>
<Text layoutX="16.0" layoutY="195.0" strokeType="OUTSIDE" strokeWidth="0.0" text="/co i - Включает/выключает режим проверки блоков. Кто ставил, кто ломал, открывал" wrappingWidth="365.13671875">
<font>
<Font name="System Bold" size="21.0" />
</font>
</Text>
<Text layoutX="14.0" layoutY="288.0" strokeType="OUTSIDE" strokeWidth="0.0" text="/tempmute [ник] [время] [пункт правила] - Запрещает игроку пользоваться чатом на некоторое время." wrappingWidth="358.13671875">
<font>
<Font name="System Bold" size="21.0" />
</font>
</Text>
<Text layoutX="372.0" layoutY="71.0" strokeType="OUTSIDE" strokeWidth="0.0" text="/mute [ник] [пункт правила] - Навсегда запрещает игроку пользовться чатом." wrappingWidth="365.13671875">
<font>
<Font name="System Bold" size="21.0" />
</font>
</Text>
<Text layoutX="372.0" layoutY="188.0" strokeType="OUTSIDE" strokeWidth="0.0" text="/warn [ник] [-s] [пункт правила] [разъяснения причины] - Выдаёт предупреждение игроку" wrappingWidth="365.13671875">
<font>
<Font name="System Bold" size="21.0" />
</font>
</Text>
<Button fx:id="BackStajer" layoutX="653.0" layoutY="293.0" mnemonicParsing="false" prefHeight="84.0" prefWidth="84.0" style="-fx-background-color: #ff0000;" text="←" textFill="WHITE">
<font>
<Font size="36.0" />
</font>
</Button>
</children>
</AnchorPane>
</children>
</AnchorPane>
SeniorModerator.fxml:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.Cursor?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.effect.Glow?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="500.0" prefWidth="800.0" style="-fx-background-color: #f0f8ff;" xmlns="http://javafx.com/javafx/16" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
<children>
<AnchorPane prefHeight="80.0" prefWidth="800.0" style="-fx-background-color: #808080;" AnchorPane.bottomAnchor="420.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<Button fx:id="Stajer" layoutX="14.0" layoutY="33.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="107.0" style="-fx-background-color: #ffff00;" text="Стажёр">
<font>
<Font name="System Bold" size="12.0" />
</font>
<effect>
<Glow level="0.25" />
</effect>
<cursor>
<Cursor fx:constant="HAND" />
</cursor>
</Button>
<Button fx:id="Helper" layoutX="155.0" layoutY="33.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="107.0" style="-fx-background-color: #008000;" text="Помощник">
<font>
<Font name="System Bold" size="12.0" />
</font>
</Button>
<Button fx:id="Moderator" layoutX="534.0" layoutY="33.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="107.0" style="-fx-background-color: #8b00ff;" text="Модератор">
<font>
<Font name="System Bold" size="12.0" />
</font>
</Button>
<Button fx:id="SeniorModerator" layoutX="679.0" layoutY="33.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="107.0" style="-fx-background-color: #42aaff;" text="...">
<font>
<Font name="System Bold" size="9.0" />
</font>
</Button>
</children>
</AnchorPane>
<AnchorPane layoutX="-1.0" layoutY="79.0" prefHeight="422.0" prefWidth="800.0" style="-fx-background-color: #42aaff;">
<children>
<AnchorPane layoutX="300.0" layoutY="14.0" prefHeight="34.0" prefWidth="200.0">
<children>
<Text layoutX="12.0" layoutY="25.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Доступные команды:" wrappingWidth="176.13671875">
<font>
<Font name="System Bold" size="16.0" />
</font>
</Text>
</children>
</AnchorPane>
<Text layoutX="14.0" layoutY="71.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Text" wrappingWidth="289.13671875" />
<Text layoutX="14.0" layoutY="139.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Text" wrappingWidth="289.13671875" />
<Text layoutX="14.0" layoutY="103.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Text" wrappingWidth="289.13671875" />
<Text layoutX="14.0" layoutY="177.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Text" wrappingWidth="289.13671875" />
<Text layoutX="14.0" layoutY="207.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Text" wrappingWidth="289.13671875" />
</children>
</AnchorPane>
</children>
</AnchorPane>
Helper.fxml:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.Cursor?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.effect.Glow?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="500.0" prefWidth="800.0" style="-fx-background-color: #f0f8ff;" xmlns="http://javafx.com/javafx/16" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
<children>
<AnchorPane prefHeight="80.0" prefWidth="800.0" style="-fx-background-color: #808080;" AnchorPane.bottomAnchor="420.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<Button fx:id="Stajer" layoutX="14.0" layoutY="33.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="107.0" style="-fx-background-color: #ffff00;" text="Стажёр">
<font>
<Font name="System Bold" size="12.0" />
</font>
<effect>
<Glow level="0.25" />
</effect>
<cursor>
<Cursor fx:constant="HAND" />
</cursor>
</Button>
<Button fx:id="Helper" layoutX="155.0" layoutY="33.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="107.0" style="-fx-background-color: #008000;" text="...">
<font>
<Font name="System Bold" size="12.0" />
</font>
</Button>
<Button fx:id="Moderator" layoutX="534.0" layoutY="33.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="107.0" style="-fx-background-color: #8b00ff;" text="Модератор">
<font>
<Font name="System Bold" size="12.0" />
</font>
</Button>
<Button fx:id="SeniorModerator" layoutX="679.0" layoutY="33.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="107.0" style="-fx-background-color: #42aaff;" text="Старший модератор">
<font>
<Font name="System Bold" size="9.0" />
</font>
</Button>
</children>
</AnchorPane>
<AnchorPane layoutX="-1.0" layoutY="79.0" prefHeight="422.0" prefWidth="800.0" style="-fx-background-color: #008000;">
<children>
<AnchorPane layoutX="300.0" layoutY="14.0" prefHeight="34.0" prefWidth="200.0">
<children>
<Text layoutX="12.0" layoutY="25.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Доступные команды:" wrappingWidth="176.13671875">
<font>
<Font name="System Bold" size="16.0" />
</font>
</Text>
</children>
</AnchorPane>
<Text layoutX="14.0" layoutY="71.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Text" wrappingWidth="289.13671875" />
<Text layoutX="14.0" layoutY="139.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Text" wrappingWidth="289.13671875" />
<Text layoutX="14.0" layoutY="103.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Text" wrappingWidth="289.13671875" />
<Text layoutX="14.0" layoutY="177.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Text" wrappingWidth="289.13671875" />
<Text layoutX="14.0" layoutY="207.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Text" wrappingWidth="289.13671875" />
</children>
</AnchorPane>
</children>
</AnchorPane>
sample.fxml:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.Cursor?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.effect.Glow?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="500.0" prefWidth="800.0" style="-fx-background-color: #f0f8ff;" xmlns="http://javafx.com/javafx/16" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
<children>
<AnchorPane prefHeight="80.0" prefWidth="800.0" style="-fx-background-color: c0c0c0;" AnchorPane.bottomAnchor="420.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<Button fx:id="Stajer" layoutX="14.0" layoutY="33.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="107.0" style="-fx-background-color: #ffff00;" text="Стажёр">
<font>
<Font name="System Bold" size="12.0" />
</font>
<effect>
<Glow level="0.25" />
</effect>
<cursor>
<Cursor fx:constant="HAND" />
</cursor>
</Button>
<Button fx:id="Helper" layoutX="155.0" layoutY="33.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="107.0" style="-fx-background-color: #008000;" text="Помощник">
<font>
<Font name="System Bold" size="12.0" />
</font>
</Button>
<Button fx:id="Moderator" layoutX="534.0" layoutY="33.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="107.0" style="-fx-background-color: #8b00ff;" text="Модератор">
<font>
<Font name="System Bold" size="12.0" />
</font>
</Button>
<Button fx:id="SeniorModerator" layoutX="679.0" layoutY="33.0" mnemonicParsing="false" prefHeight="34.0" prefWidth="107.0" style="-fx-background-color: #42aaff;" text="Старший модератор">
<font>
<Font name="System Bold" size="9.0" />
</font>
</Button>
</children>
</AnchorPane>
</children>
</AnchorPane>
fx:id="NextStajer". Если есть, то попробуйте убрать все private у @FXML полей. – insolor Jul 07 '21 at 06:10requiresвmodule-info.java– Barmaley Jul 07 '21 at 06:16