У меня проблема при работе с javafx. Я хочу отобразить одну стадию со сценой, содержащей панель (основная панель с меню), содержащая панель (информацию).
Моя проблема заключается в следующем: либо я вижу содержимое двойной панели в окне ( как показано на рисунке ниже) или пустую панель в зависимости от порядка действий между заданной сценой, центральной панелью и окном отображения. Отображение ошибок:
Вот что я хочу видеть:
Код, который я использую:
package org.HangmanGameFXViews;
import java.io.IOException;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class Main extends Application {
private Stage stagePrincipal;
public Stage getStagePrincipal() {
return stagePrincipal;
}
private BorderPane mainPane;
private AnchorPane homePane;
private AnchorPane rulesPane;
@Override
public void start(Stage primaryStage) {
stagePrincipal = primaryStage;
stagePrincipal.setTitle("Application de gestion de personnes");
FXMLLoader loader = new FXMLLoader();
loader.setLocation(Main.class.getResource("view/MainContainer.fxml"));
try {
mainPane = loader.load();
} catch (IOException e) {
e.printStackTrace();
}
FXMLLoader loader2 = new FXMLLoader();
loader2.setLocation(Main.class.getResource("view/Home.fxml"));
try {
homePane = loader2.load();
} catch (IOException e) {
e.printStackTrace();
}
mainPane.setCenter(homePane);
Scene scene = new Scene(mainPane);
stagePrincipal.setScene(scene);
stagePrincipal.show();
}
public static void main(String[] args) {
launch(args);
}
}
The Home.f xml:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextArea?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>
<AnchorPane prefHeight="473.0" prefWidth="378.0" stylesheets="@textarea.css" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Label alignment="CENTER" contentDisplay="CENTER" maxWidth="1.7976931348623157E308" prefHeight="27.0" prefWidth="368.0" text="Bienvenue dans le jeu du PENDU" textAlignment="CENTER">
<font>
<Font name="System Bold" size="18.0" />
</font>
</Label>
<ImageView fitHeight="291.0" fitWidth="539.0" layoutX="10.0" layoutY="27.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@../../../../resources/pictures/homePicture.jpg" />
</image>
</ImageView>
<TextArea editable="false" layoutX="8.0" layoutY="318.0" prefHeight="147.0" prefWidth="368.0" text="Vous avez 7 coups pour trouver le mot cacher et si vous réussissez... et bien on recommence! Plus vous avez trouvez de mots, plus votre score grandira!! Alors à vous de jouer! PROVERBE : "Pas vu, pas pris! Pris! PENDU!!!"" wrapText="true" />
</children>
</AnchorPane>
The MainContainers.f xml:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Menu?>
<?import javafx.scene.control.MenuBar?>
<?import javafx.scene.control.MenuItem?>
<?import javafx.scene.layout.BorderPane?>
<BorderPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="200.0" prefWidth="500.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.HangmanGameFXViews.view.MenuesActions">
<top>
<MenuBar maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="500.0" prefWidth="400.0" BorderPane.alignment="CENTER">
<menus>
<Menu mnemonicParsing="false" text="Fichiers">
<items>
<MenuItem mnemonicParsing="false" text="Nouveau" />
<MenuItem mnemonicParsing="false" onAction="#switchToRules" text="Règles" />
<MenuItem mnemonicParsing="false" text="Quitter" />
</items>
</Menu>
<Menu mnemonicParsing="false" text="À propos" />
</menus>
</MenuBar>
</top>
</BorderPane>
The Rules.f xml:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextArea?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.text.Font?>
<AnchorPane prefHeight="413.0" prefWidth="459.0" stylesheets="@textarea.css" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/11.0.1">
<children>
<Pane prefHeight="200.0" prefWidth="459.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<Label alignment="CENTER" contentDisplay="CENTER" layoutX="35.0" layoutY="3.0" maxWidth="1.7976931348623157E308" text="Le jeu du PENDU" textAlignment="CENTER">
<font>
<Font name="Arial Black" size="14.0" />
</font>
</Label>
<TextArea editable="false" layoutY="25.0" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="76.0" prefWidth="459.0" text="Vous avez 7 coups pour trouver le mot caché ! Et si vous réussissez : on recommence ! Plus vous acez trouvé de mots, plus votre score grandira !! Alors à vous de jouer !" wrapText="true" />
<TextArea editable="false" layoutY="118.0" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="179.0" prefWidth="459.0" text="COMPTES DES POINTS : Mot trouve sans erreur...............................100Pts Mot trouve avec 1 erreur.............................50Pts Mot trouve avec 2 erreurs...........................35Pts Mot trouve avec 3 erreurs...........................25Pts Mot trouve avec 4 erreurs............................15Pts Mot trouve avec 5 erreurs............................10Pts Mot trouve avec 6 erreurs............................5Pts" wrapText="true">
<font>
<Font name="System Bold" size="12.0" />
</font>
</TextArea>
<TextArea editable="false" layoutY="296.0" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="117.0" prefWidth="459.0" text="Je vous souhaite bien du plaisir .... Et si vous pensez pouvoir trouver un mot en un coup, c'est que vous pensez que le dictionnaire est petit ! Hors, pour votre information il comprend plus de 330 000 mots ... donc bonne chance." wrapText="true" />
</children>
</Pane>
Спасибо за любую помощь.