Java SWT-缩放后的背景图像在编译后无法正常工作

时间:2019-01-27 08:57:51

标签: java image shell background swt

这是我的代码

    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之后,背景图像没有缩放...为什么?

这是我所期望的: enter image description here

..

..

..

但是目前它看起来如下:(我不想要这个): enter image description here

1 个答案:

答案 0 :(得分:2)

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

使用以下方法获取主显示尺寸:

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

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

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

告诉您将在其中显示外壳程序的监视器(如果有多个监视器,则可能会有所不同)。