当前位置: 首页 > 知识库问答 >
问题:

JavaFX中的背景图像

曾沛
2023-03-14

我正在尝试在javaFX场景中加载背景图像。我在这里找到的答案不起作用。窗口打开,但它是空白的(没有图像)。

public class FirstFX extends Application {

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

    @Override
    public void start(Stage stage) throws Exception {
        StackPane root = new StackPane();
        BackgroundImage myBI= new BackgroundImage(new Image("SnLBoard.png"),
            BackgroundRepeat.REPEAT, BackgroundRepeat.NO_REPEAT, BackgroundPosition.DEFAULT, BackgroundSize.DEFAULT);
        root.setBackground(new Background(myBI));
        stage.show();
    }
}

共有1个答案

轩辕鸿
2023-03-14

您没有将根与任何内容相关联,因此阶段内没有显示任何内容:

StackPane root = new StackPane();
Scene scene = new Scene(root, 640, 480);
... //Display code and logic
stage.setScene(scene);
stage.show();

您还可以考虑设置窗格的最小/首选/最大大小。在这段代码之后,您将需要启动一个线程来启动应用程序逻辑

 类似资料:
  • 我正在用java开发一个聊天机器人项目,在GUI中我使用JavaFX、IDE eclipse和scene builder 8.4.1。 我在向文本区域添加背景图像时遇到问题。这是我所做的一个屏幕截图,它什么也没有显示(甚至没有错误)。 以下是场景生成器生成的fxml代码:

  • 我有一个简单的LineChart,按下按钮就会在一个新窗口中打开。此LineChart使用存储在硬盘上的图像作为背景。如果关闭提示LineChart的窗口,更改(或删除)图像文件并重新打开窗口,则会再次加载旧图像。我在场景构建器和代码中禁用了LineChart的缓存,但这没有帮助。 下面是我用于测试的LineChart-Controller的一个简单代码片段: 谢了! ----更新----目前我使

  • 我想在ImageView中将图像居中。ImageViews用于列表中图片的缩略图,我使用了宽度和高度为90的固定视口,使它看起来更干净。这些图片使用背景加载,所以我不知道图片放入ImageView时的尺寸。当然,我不想拉伸(或裁剪)图像。我在加载图像时使用preserveRatio。有什么方法可以让图像居中,而不是左上角?图像的最长边总是90度。

  • 我需要在父背景模式上显示我的webview内容。有没有简单的方法来做到这一点?

  • 简而言之;有没有办法取消/清除JavaFX图像的背景加载? 在我的代码中,我加载了一堆图像。出于性能原因,在后台使用 来自Images类。 问题是,有时,用户交互会导致程序在加载之前更新图像列表(而不需要之前的图像)。在这一点上,我想取消以前的后台加载。现在,它仍然加载以前的图像,导致实际需要的图像加载时间更长。 请看下面的例子。当我在旧的源完成处理之前得到一个新的源流时,内容开始显示图像需要更长

  • 下面的外部CSS页面示例中的快速简单问题; 我知道它们会影响不同的元素选择器,我的问题是使用背景和背景图像有什么区别?一方可以访问另一方的特定属性吗?谢谢你。