Добрейший день. Подскажите почему у меня не работает кнопка. При нажатии она должна менять Scene, но почему то этого не происходит. Посмотрел целую кучу обучающих видео и не меньше прочитал статей. Вот код.
FXML главной сцены:
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import javafx.scene.shape.*?>
<?import javafx.scene.text.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<Pane fx:id="root" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Main">
<children>
<Button fx:id="btngsc" layoutX="14.0" layoutY="60.0" mnemonicParsing="false" prefHeight="65.0" prefWidth="223.0" style="-fx-background-radius: 40; -fx-background-color: #778899;" text="Получить сим-карту">
<font>
<Font name="Arial Italic" size="19.0" />
</font>
</Button>
<Button fx:id="help" layoutX="14.0" layoutY="139.0" mnemonicParsing="false" prefHeight="65.0" prefWidth="223.0" style="-fx-background-radius: 40; -fx-background-color: #778899;" text="Помогите!!!">
<font>
<Font name="Arial Italic" size="19.0" />
</font>
</Button>
<Label alignment="CENTER" layoutX="28.0" layoutY="14.0" prefHeight="32.0" prefWidth="745.0" text="Добрый день! Если вы хотите получить сим-карту, нажмите на кнопку "Получить сим-карту".">
<font>
<Font name="Arial Italic" size="16.0" />
</font>
</Label>
<Rectangle arcHeight="5.0" arcWidth="5.0" fill="#ffffff00" height="543.0" layoutX="249.0" layoutY="43.0" stroke="BLACK" strokeType="INSIDE" width="518.0" />
</children>
</Pane>
FXML Сцены, на которую нужно перейти:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.media.MediaView?>
<?import javafx.scene.text.Font?>
<Pane fx:id="gsc" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Main">
<children>
<AnchorPane fx:id="root1" maxHeight="600.0" maxWidth="800.0" minHeight="600.0" minWidth="800.0" prefHeight="600.0" prefWidth="800.0">
<children>
<Label layoutX="386.0" layoutY="14.0" text="Для продолжения посмотрите обучающий видеоролик. Если вы и так все знаете можно пропустить этот пункт и перейти к получению сим-карты, для этого нажмите кнопку: "Далее"." textAlignment="CENTER" wrapText="true" AnchorPane.leftAnchor="16.0" AnchorPane.rightAnchor="16.0" AnchorPane.topAnchor="14.0">
<font>
<Font name="Arial Italic" size="16.0" />
</font>
</Label>
<MediaView fitHeight="450.0" fitWidth="450.0" layoutX="175.0" layoutY="75.0" AnchorPane.topAnchor="75.0" />
<Button fx:id="nextbtngsc" layoutX="514.0" layoutY="525.0" maxHeight="65.0" maxWidth="223.0" minHeight="65.0" minWidth="223.0" mnemonicParsing="false" prefHeight="65.0" prefWidth="223.0" style="-fx-background-color: #778899; -fx-background-radius: 40;" text="Далее">
<font>
<Font name="Arial Italic" size="19.0" />
</font>
</Button>
<Button fx:id="backngsc" layoutX="64.0" layoutY="525.0" maxHeight="65.0" maxWidth="223.0" minHeight="65.0" minWidth="223.0" mnemonicParsing="false" prefHeight="65.0" prefWidth="223.0" style="-fx-background-color: #778899; -fx-background-radius: 40;" text="Назад">
<font>
<Font size="19.0" />
</font>
</Button>
</children>
</AnchorPane>
</children>
</Pane>
Главный класс программы:
package sample;
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import java.io.IOException;
public class Main extends Application { // главный класс.
private Stage stage = null;
private BorderPane sukapane;
private Scene scene, gscScene;
@FXML
private Button btngsc;
@FXML
private Pane root;
@FXML
private Pane gsc;
public void start(Stage stage) throws Exception{ //Создаем Stage
this.stage = stage;
stage.setTitle("PromskyAppTerminal");
//Вызываем методы инициализации Scene
initSample();
showPersonOverview();
}
private void initSample() {//Инициализация пустой сцены(как-бы оболочка)
try {
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("suka.fxml"));
sukapane = (BorderPane) loader.load();
scene = new Scene(sukapane, 800, 600);
stage.setScene(scene);
stage.show();
} catch (IOException e) {
e.printStackTrace();
}
}
private void showPersonOverview() {// Инициализация главного окна
try {
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("sample.fxml"));
root = (Pane) loader.load();
sukapane.setCenter(root);
} catch (IOException e) {
e.printStackTrace();
}
}
@FXML
public void initialize(){//работаем с кнопкой(на данный момент с одной)
btngsc.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
FXMLLoader loader1 = new FXMLLoader();
loader1.setLocation(getClass().getResource("getsimcard.fxml"));
try {
gsc = (Pane) loader1.load();
} catch (IOException e) {
e.printStackTrace();
}
gscScene = new Scene(gsc, 800, 600);
stage = null;
stage.setScene(gscScene);
}
});
}
public Stage getStage() {
return stage;
}
public static void main(String[] args) { // Здесь пишется вся логика.
launch(args); // Запуск программы.
}
}
Ребят, очень надеюсь на вашу помощь.