Java SWT - 缩放后的背景图像在编译后不起作用

Java SWT - Scaled Background Image Not Working After Compiled

这是我的代码

    shell.setFullScreen(true);
    shell.setMaximized(true);
    shell.setText("SD Cyber Cafe");
    shell.setLayout(new FormLayout());

    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

    Image oriImage = new Image(display, "C:\Users\LAPTOP-SYAMSOUL\Desktop\lockscreen_app\main_bg.jpeg"); //should get from database
    //System.out.println(screenSize.width);

    Image newImage = new Image(display, oriImage.getImageData(100).scaledTo(screenSize.width, screenSize.height));
    shell.setBackgroundImage(newImage);

当我通过 eclipse 运行 应用程序时,它工作正常...

但是我导出到Runnable JAR后背景图片没有缩放...为什么??

这是我所期望的:

..

..

..

但目前显示如下:(我不想要这个):

很难从这段代码中确定,但 Toolkit 是一种 Swing/AWT 方法,不应与 SWT 一起使用。它很可能给出了错误的值。

使用类似以下内容获取主要显示尺寸:

Rectangle displayArea = shell.getDisplay().getPrimaryMonitor().getBounds();

它告诉您有关主要(主要)监视器的信息或

Rectangle displayArea = shell.getMonitor().getBounds();

它告诉您 shell 将出现在哪个显示器上(如果有多个显示器,可能会有所不同)。