java - 空白窗口 JavaFX

标签 java eclipse javafx scenebuilder

如何解决这个问题,运行项目时会打开一个空白窗口

这是我的主要内容:

package application;

import java.io.IOException;

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


public class Main extends Application {

private Stage primaryStage;

@Override
public void start(Stage primaryStage) {
    this.primaryStage = primaryStage;
    primaryStage.show();
}

public void mainWindow() {
    try {
        FXMLLoader loader =new FXMLLoader(Main.class.getResource("/MainWindowView.fxml"));
        AnchorPane pane = loader.load();
        MainWindowController mainWindowController = loader.getController();
        mainWindowController.setMain(this);
        Scene scene = new Scene(pane);
        primaryStage.setScene(scene);
        primaryStage.show();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

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

这是我的 View xml:

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

<?import javafx.scene.text.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>

<AnchorPane prefHeight="1080.0" prefWidth="1920.0" 
xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" 
fx:controller="application.MainWindowController">
<children>
  <Label fx:id="label" alignment="CENTER" layoutY="420.0" text="Label" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0">
     <font>
        <Font size="71.0" />
     </font>
  </Label>
  <HBox alignment="CENTER" layoutX="774.0" layoutY="540.0" spacing="20.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0">
     <children>
        <TextField layoutX="774.0" layoutY="540.0" />
        <Button layoutX="1268.0" layoutY="540.0" mnemonicParsing="false" onAction="#handleButton" text="Click Me!" />
    </children>
    </HBox>
</children>
</AnchorPane>

这是我的 Controller :

package application;

import java.awt.Label;
import java.awt.TextField;

import javafx.fxml.FXML;

public class MainWindowController {

    @FXML private Label label;
    @FXML private TextField field;


    private Main main;

    public void setMain(Main main) {

        this.main = main;

    }

    public void handleButton() {

        String text = field.getText();
        label.setText(text);

    }

}

如果想以这种方式查看,此链接有指向 hastebin 中所有这三个代码的链接( https://pastebin.com/raw/hbGBJUng ),我是 java 和 javafx 新手,并且不确定当我运行项目时我做错了什么在 Eclipse 中,它向我显示一个空窗口,因为当我在 scenebuilder 中打开 xml 时,我添加了一个按钮、一个标签和一个文本字段。

最佳答案

你在mainWindow中的代码应该在start中,目前它还没有运行,这导致只运行start代码,所以没有任何东西被上演,并且通过show显示空的阶段。

关于java - 空白窗口 JavaFX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45917261/

相关文章:

java - 没有用于方案的文件系统:null

eclipse - 使用快捷键拆分窗口

java - 处理功能键中的 JavaFX 事件

java - 在 Java 中保存处理程序

java - 在 Eclipse 中设置新项目

java - 在 javaFX 中创建多个屏幕

Java:在Eclipse中运行java文件时执行cmd命令?

java - 不缓存的Guava Cache

java - android 4.2.2 是否支持 jre 1.7?

java - 静态内容在项目重启之前不会更新 - Spring Boot 和 Eclipse