스케일 된 모니터에서 Paperclips (SWT 용 인쇄 라이브러리)을 사용하는 데 문제가 있지만 프레임 워크 및 Eclipse 환경과 관련이 없다고 생각합니다. Java 및 Eclipse 프레임 워크에서 다르게 처리되는 배율
는 다음의 예제를 보자 :왼쪽없이 크기 조정 (100 %)을 인쇄하고, 바로 같은 인쇄 175 %의 스케일링 모니터에 시작됩니다. 나는 당신이 생각하고있는 것을 안다 : 모니터와 해상도/스케일링은 인쇄물에 아무런 영향을주지 않아야한다. 맞습니다. 해야합니다.
슬프지만 모든 것이 문제가되는 것은 아닙니다. 그러나 키커가 있습니다. 위의 인쇄물은 플러그인 테스트로 실행되는 JUnit 테스트 케이스에 의해 생성되었습니다. 정규 단위 테스트로 실행하면 모두이 작동합니다.
분명히 Eclipse 환경에서 뭔가가 OSGi 컨텍스트에서 시작될 때 다르게 작동하며, 이것이 무엇인지 알아 내려고합니다. 그래서 그것을 막을 수 있습니다.
그리고 나는 그것이 좋은 퍼즐이라고 생각합니다.
SWT 클래스에 대한 힌트가 필요하면이 파일 ScalePrint.java
(즉, 내 데모에서 ScalePrint
의 인스턴스를 제거하면 테이블이 올바르게 표시되고 머리글은 아직도 틀리다).
오류가 4.6이나 4.5 또는 3.7이 아닌 Eclipse 4.6에만 존재한다는 것을 확인할 수 있습니다 (이것은 4.6이 처음으로 확장을 지원하기 때문에 완전히 놀랍지는 않습니다). 그리고 VM 옵션에 -Dswt.autoScale=100
을 추가하여 확장을 비활성화하면 예상대로 작동합니다.
필자는 테스트 케이스를 추가 할 수는 있지만, 내가 말했듯이, 그것이 실제로 클립 클립 그 자체와 관련이 없다고 생각하지는 않습니다.
전체 Eclipse 프레임 워크가 일반 Java 응용 프로그램에서 동일한 코드를 실행하는 것과 비교하여 시작될 때 스케일링을 깨뜨릴 수있는 것은 무엇입니까?