代码之家  ›  专栏  ›  技术社区  ›  Stefan S.

Java和Eclipse框架中的扩展处理方式不同

  •  0
  • Stefan S.  · 技术社区  · 8 年前

    Paperclips (打印SWT库)在缩放的监视器上,但我认为这与框架以及Eclipse环境没有任何关系。

    让我们来看一个例子:

    enter image description here

    左边是没有缩放(或100%)的打印,右边是在显示器上以175%缩放开始的相同打印。我知道你在想什么:显示器及其分辨率/比例应该不会影响打印。正当 应该

    虽然这很可悲,但也不是什么大问题。但关键是:上面的打印是由作为插件测试运行的JUnit测试用例生成的。如果我将它们作为常规单元测试运行 二者都 工作

    我认为这是一个很好的谜题。

    ScalePrint.java 对于表(即,如果我删除 ScalePrint 从我的演示中,表格显示正确;尽管如此,标题仍然错误)。

    -Dswt.autoScale=100 对于禁用缩放的VM选项,它也按预期工作。

    我可以附加我的测试用例,但正如我所说的,我真的认为它与回形针本身没有任何关系。

    所以与在普通Java应用程序中运行相同的代码相比,当整个Eclipse框架启动时,有什么可以打破伸缩性?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Stefan S.    7 年前

    问题是类的使用 Transform ,它本身使用静态场 DPIUtil.deviceZoom (形式为 DPIUtil.autoScaleUp(float dx) ).

    自从 DPIUtil。设备缩放 是一个静态字段,当与具有缩放功能的主监视器一起使用时,一切都会失败(因为打印机没有缩放功能)。