代码之家  ›  专栏  ›  技术社区  ›  Syamsoul Azrien

Java SWT——缩放后的背景图像在编译后不工作

  •  0
  • Syamsoul Azrien  · 技术社区  · 6 年前

    这是我的密码

        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 回复  |  直到 6 年前
        1
  •  2
  •   greg-449    6 年前

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

    使用如下方法获取主显示大小:

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

    它告诉你关于主(主)监视器或

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

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