JavaFX Проблема с загрузкой FXML

У меня возникли проблемы с вводом имени для входа в файл FXML в мое приложение JavaFX.

Может кто-нибудь сказать мне, что я делаю неправильно?

Я очень новичок в JavaFX из Swing, так что извините, если это действительно плохо или неправильно.

package application;

import java.util.logging.Level;
import java.util.logging.Logger;

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


public class Main extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        try {
            AnchorPane page = (AnchorPane) FXMLLoader.load(getClass().getResource("application/MainDisplay.fxml"));
            Scene scene = new Scene(page);
            primaryStage.setScene(scene);
            primaryStage.setTitle("Welcome!");
            primaryStage.show();
        } 
        catch (Exception ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);

        }
    }
}

Вот файл fXML

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

<?import javafx.scene.Cursor?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.PasswordField?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>


<AnchorPane prefHeight="400.0" prefWidth="600.0"     xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.65">
   <children>
      <Text layoutX="177.0" layoutY="137.0" strokeType="OUTSIDE"     strokeWidth="0.0" text="Welcome!" wrappingWidth="140.02001953125">
         <font>
            <Font size="25.0" />
         </font>
         <cursor>
            <Cursor fx:constant="NONE" />
         </cursor>
      </Text>
      <Text layoutX="177.0" layoutY="179.0" strokeType="OUTSIDE"     strokeWidth="0.0" text="User Name:" wrappingWidth="85.9443359375" />
      <Text layoutX="177.0" layoutY="213.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Password:" />
      <Button layoutX="353.0" layoutY="242.0" mnemonicParsing="false" text="Sign In" />
      <TextField layoutX="263.0" layoutY="161.0" />
      <PasswordField layoutX="263.0" layoutY="195.0" />
   </children>
</AnchorPane>

person B Whitehead    schedule 29.09.2016    source источник
comment
С какой проблемой вы столкнулись?   -  person Tobias    schedule 29.09.2016
comment
это дает ошибку. он не загружает файл xml и вылетает.   -  person B Whitehead    schedule 29.09.2016
comment
В этом случае опубликуйте трассировку стека и любую соответствующую информацию. Мы здесь, чтобы помочь вам, но вы должны предоставить очень основную информацию.   -  person Tobias    schedule 29.09.2016
comment
Пожалуйста, опубликуйте трассировку стека ошибки, чтобы мы могли определить проблему. :)   -  person David Landup    schedule 30.09.2016
comment
Вы получаете сообщение Местоположение не установлено? Если для загрузки ресурса используется класс из пакета application, в качестве пути следует использовать либо /application/MainDisplay.fxml, либо просто MainDisplay.fxml...   -  person fabian    schedule 30.09.2016


Ответы (1)


Попробуй это:

@Override
    public void start(Stage primaryStage){
        try {
            AnchorPane page = (AnchorPane) FXMLLoader.load(getClass().getResource("/application/MainDisplay.fxml"));
            Scene scene = new Scene(page);
            primaryStage.setScene(scene);
            primaryStage.setTitle("Welcome!");
            primaryStage.show();
        } 
        catch (Exception e) {
            e.printStackTrace();
        }
person Nevets17    schedule 29.09.2016