JDK-8138749 : Revisited: PrinterJob.printDialog() does not support multi-mon, always displayed on primary
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 6.0,7,8,9
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2015-10-02
  • Updated: 2016-03-23
  • Resolved: 2016-03-03
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 9
9 b110Fixed
Related Reports
Duplicate :  
Duplicate :  
Relates :  
Description
Please reconsider for JDK9 the decision not to fix JDK-5109347 in jdk6 update release. At that time it was a natural decision since an update release is not supposed to introduce a new API. It's perhaps time to do it now.

A short resume of JDK-5109347: a cross-platform PrintDialog is always displayed on a primary screen device. 
Possible real life scenario: printing of a JTable displayed on an attached bigger monitor to a notebook; print dialog pops on a main screen which may be e.g. closed. 
Comments
The dialog is placed at x+50, y+50 to make it consistent with native dialog. Fix also takes care to show the dialog entirely on-screen, as much as it can. If the dialog bounds exceeds screen /window bounds, effort was done to move the dialog so that it gets shown on screen. This is added for both printDialog and pageDialog.
03-03-2016

It is seen that GraphicsConfig passed to ServiceDialog class is from default screen device. so when the printDialog is shown, it is displayed in the default monitor even when the active frame/window is in secondary monitor. Fix is to use the current active window and get the GraphicsConfig from that window and use that GraphicsConfig into the ServiceDialog class to show the dialog.
28-01-2016