Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaSWT浏览器。超高清(4K)或更高分辨率屏幕上的不同输出_Java_Html_Browser_Swt_Internet Explorer 11 - Fatal编程技术网

JavaSWT浏览器。超高清(4K)或更高分辨率屏幕上的不同输出

JavaSWT浏览器。超高清(4K)或更高分辨率屏幕上的不同输出,java,html,browser,swt,internet-explorer-11,Java,Html,Browser,Swt,Internet Explorer 11,我们在java应用程序中使用SWT浏览器来呈现HTML内容。当环境具有非常高的分辨率(4K)时,会出现问题。当内容包含此类html时: <html> <head> <style> .test { font-size: 35px;font-family: Arial;} </style> </head><body><div class='test'>TEST</div></body><

我们在java应用程序中使用SWT浏览器来呈现HTML内容。当环境具有非常高的分辨率(4K)时,会出现问题。当内容包含此类html时:

<html> <head> <style> .test { font-size: 35px;font-family: Arial;} </style> </head><body><div class='test'>TEST</div></body></html>
.test{font size:35px;font-family:Arial;}test
使用的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();
  }
}
import org.eclipse.swt.swt;
导入org.eclipse.swt.browser.*;
导入org.eclipse.swt.layout.*;
导入org.eclipse.swt.widgets.*;
公共类SWTTest{
公开募捐{
显示=新显示();
外壳=新外壳(显示);
shell.setText(“SWT测试”);
createContents(shell);
shell.open();
而(!shell.isDisposed()){
如果(!display.readAndDispatch()){
display.sleep();
}
}
display.dispose();
}
私有void createContents(Shell){
setLayout(新的FillLayout());
浏览器=新浏览器(shell,SWT.NONE);
browser.setText(“\r\n”+
“.test{font size:85px;font-family:Arial;}\r\n”+
“\r\n”+
“测试\r\n”+
“\r\n”+
"");
}
公共静态void main(字符串[]args){
新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

在Java9中似乎有一些(请参阅)。如果您的用户社区能够向前发展,这可能是最简单的修复方法。

这可能需要更新版本的SWT,我建议您选择最新版本。注意,光子Eclipse4.8即将发布,所以当前的RC构建也应该相当不错。
关于Windows上的HDPI w/Eclipse,还有一个相关的论坛帖子。

您可能需要更新版本的SWT,我建议您选择最新版本。您可能还想看看4.5、4.6中完成的大量工作。和SWT的4.7。4.5版的问题在这里(),后续任务已链接。@Jörg,你的建议解决了问题,你是第一个。你能写下你的评论作为回答吗?我接受它,这样你就能得到分数。谢谢@benchpresser的友好反馈!