Java SWT - масштабированное фоновое изображение не работает после компиляции - PullRequest
0 голосов
/ 27 января 2019

Это мой код

    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 голосов
/ 27 января 2019

Трудно сказать наверняка по этому коду, но Toolkit является методом Swing / AWT и не должен использоваться с SWT.Возможно, он дает неправильные значения.

Получите основной размер дисплея, используя что-то вроде:

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

, который говорит вам о главном (основном) мониторе или

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

, который сообщает вам о мониторе, на котором появится оболочка (может отличаться, если имеется несколько мониторов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...