我正在学习JavaFX,并试图用SceneBuilder制作一个图形应用程序,但窗口是空白的,上面什么都没有.我在SceneBuilder的窗口中添加了一些按钮,但在运行应用程序时看不到它们.这款应用基于MVC:

主要:

package application;

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



public class Main extends Application {
    @Override
    public void start(Stage stage) {
        try {
            FXMLLoader loader = new FXMLLoader(Main.class.getResource("Test.fxml"));
            AnchorPane root = (AnchorPane) loader.load();
            Scene scene = new Scene(root);
            scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
            stage.setTitle("Test");
            stage.setScene(scene);
            stage.show();
            
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
    
    public static void main(String[] args) {
        launch(args);
    }
}

控制器:

package application;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.layout.AnchorPane;

public class Controller {
    @FXML
    private AnchorPane base;
    
    @FXML
    public void setBackgroundRed(ActionEvent event) {
        base.setStyle("-fx-background-color: red;");
    }
    @FXML
    public void setBackgroundGreen(ActionEvent event)   {
        base.setStyle("-fx-background-color: green;");
    }
}

这就是我在SceneBuilder上做的,以及图形用户界面的外观:SceneBuilder GUI

这就是我在运行应用程序时得到的结果:blank window

编辑:如果我关闭并重新打开SceneBuilder,则图形用户界面正常. image

推荐答案

您使用的是Eclipse IDE,对吗?

我认为问题出在日食.事实上,在默认情况下,Eclipse不会自动引用项目资源.因此,如果从SceneBuilder更新并保存.fxml文件,该文件将在IDE中不同步,直到您使用refresh the resources(在项目文件夹和>刷新上为right click,或在F5上).

您可以通过 Select 选项刷新使用本地钩子或轮询:Window>;Preferences>;General>;Workspace>;"自动刷新资源"来使Eclipse refresh resources automatically.

这个问题在this thread年得到了广泛的讨论.

Java相关问答推荐

当列顺序更改时,Table View列列表的Change. wasPermanted()总是返回假

我可以从Java模块中排除maven资源文件夹吗?

空手道比赛条件

如何使用Java API在Oracle ODI中运行模拟?

ittext pdf延迟签名,签名无效

S的字符串表示是双重精确的吗?

在Java中,如何按一个属性升序,然后按另一个属性降序对对象列表进行排序?

由于 list 中的权限错误,Android未生成

如何在EXCEL单元格中添加形状和文本

Java Mooc.fi Part 12_01.Hideout -返回和删除方法

声明MessageChannel Bean的首选方式

Java页面筛选器问题

如何使这两种方法合二为一?

除0错误/抱歉我的句子是PT

Java.time.OffsetDateTime的SQL Server数据库列类型是什么?

获取所有可以处理Invent.ACTION_MEDIA_BUTTON Android 13 API33的Android包

为什么Spring要更改Java版本配置以及如何正确设置?

如何在JSP中从select中获取值并将其放入另一个select

由于可为null,无法在kotlin中实现java接口

ResponseEntity.控制器截断响应的JSON部分