Java SWT Browser.Различный вывод на экраны с разрешением Ultra HD (4K) или выше - PullRequest
0 голосов
/ 16 мая 2018

Мы используем браузер SWT в нашем java-приложении для рендеринга HTML-контента.Проблемы возникают, когда среда имеет очень высокое разрешение (4K).Когда контент имеет такой html:

<html> <head> <style> .test { font-size: 35px;font-family: Arial;} </style> </head><body><div class='test'>TEST</div></body></html>

И используемый источник java:

import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;

public class SWTTest {

  public void run() {
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setText("SWT test");
    createContents(shell);
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        display.sleep();
      }
    }
    display.dispose();
  }

  private void createContents(Shell shell) {
    shell.setLayout(new FillLayout());

   Browser browser = new Browser(shell, SWT.NONE);

   browser.setText("<html> \r\n" + 
            "<head> <style> .test { font-size: 85px;font-family: Arial;} </style> </head>\r\n" + 
            "<body>\r\n" + 
            "<div class=\"test\">TEST</div>\r\n" + 
            "</body>\r\n" + 
            "</html>");
  }

 public static void main(String[] args) {
    new SWTTest().run();
  }
}

В обычных средах с разрешением 1920x1080 и разрешением 96, отображаемый контент и просмотренный контентв Internet Explorer такие же (мы сохраняем пример HTML-текста в виде файла и открываем с помощью IE)

На некоторых ноутбуках, где у нас разрешение более 128 и 4K, отображаемый контент имеет элементы (TEST)div) с размером шрифта 35px очень маленький по сравнению с IE.

Как мы знаем, SWT использует базовый IE, но я думаю, что IE выполняет некоторые операции после обработки для тонкой настройки содержимого и фиксирует размеры элементов в зависимости от экранасвойства (разрешение и т. д.), которое не выполняется при вызове из SWT.

Любое решение без изменения содержимого html?

Свойства системы: ОС: Windows 10 (обновлено) IE: 11 Java 1.8.161 (32 бита) SWT: 4,3

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Для этого, вероятно, требуется более новая версия SWT, я предлагаю вам выбрать последнюю версию. Обратите внимание, что Photon Eclipse 4.8 скоро будет выпущен, так что текущие сборки RC также должны быть достаточно хорошими. Что касается HDPI с Eclipse в Windows, здесь также есть связанная ветка форума здесь .

0 голосов
/ 30 мая 2018

Кажется, есть некоторые важные исправления для отображения с высоким DPI в Java 9 (см. Также здесь ). Если ваше сообщество пользователей может двигаться вперед, это может быть самым простым решением.

...