Проблема с диалоговым окном печати в Java

У меня есть JFrame, и он открывает диалог печати Java. Как ниже

 PrinterJob pj = PrinterJob.getPrinterJob();
  if (pj.printDialog()) {
      //Print
    }

Проблема в том, что мой JFrame имеет атрибут setAlwaysOnTop(true) и диалоговое окно "Печать" открывается на заднем плане JFrame. Чтобы решить эту проблему, я хочу пойти по такому пути

Перед открытием Printdialog я установлю setAlwaysOnTop(false). После открытия диалогового окна печати я снова установлю setAlwaysOnTop(true).

Но как узнать мой принт Дилаог открыт?

Потому что pj.printDialog() ждет.

Как получить распечатанный dilaog открытый случай?

1 ответ

Вы можете использовать объект printrequestAttributeSet для печати диалогового окна принтера сверху. Например;

PrintRequestAttributeSet set = new HashPrintRequestAttributeSet();
set.add(OrientationRequested.LANDSCAPE);
set.add(new sun.print.DialogOnTop());

Затем используйте

pj.printDialog(set)
Другие вопросы по тегам