Java-全屏窗口的打印对话框

Java-全屏窗口的打印对话框,java,swing,printing,Java,Swing,Printing,我有一个全屏应用程序,我需要打印。对于其他弹出屏幕,我使用了JInternalFrames,但现在我需要使用PrintJob。我目前的代码如下: PrinterJob printJob = PrinterJob.getPrinterJob(); printJob.setPrintable(receipt); if (printJob.printDialog()) try { printJob.print(); } catch(PrinterException p

我有一个全屏应用程序,我需要打印。对于其他弹出屏幕,我使用了JInternalFrames,但现在我需要使用PrintJob。我目前的代码如下:

PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintable(receipt);
if (printJob.printDialog())
    try { 
        printJob.print();
    } catch(PrinterException pe) {
        System.out.println("Error printing: " + pe);
    }

但是,这当然不会显示在全屏窗口上方,因此为了查看对话框,您必须离开我的应用程序(使用alt tab或windows键或类似的方式)。显然,这并不特别实际。那么,我如何从全屏应用程序打印,而不让用户最小化程序?

您是否一定要使用PrinterJob?因为您有一个可打印的对象,所以可以将
PrintService.getServiceUIFactory().getUI(PANEL\u UI)
(或者JCOMPONENT\u UI,如果Swing可以接受)返回的AWT组件嵌入到您的全屏窗口中,然后使用
新的SimpleDoc(receipt,DocFlavor.SERVICE\u FORMATTED.Printable,null)
,我已经有一段时间没有检查过了,但是:为了让我们清楚,这是否允许用户使用UI或其他东西来选择打印机之类的东西,或者这只是为了让我可以打印一些东西?因为我真的希望允许用户更改打印设置。我认为,使程序的大小与屏幕一样,并且不加修饰,可以让我使用对话框。另一种可能是创建我自己的UI,演示一些简单的选项,比如哪台打印机?我很确定返回的组件将允许用户更改所有这些选项,尤其是JCOMPONENT_UI组件。我不确定PANEL_UI组件是什么样子的。您可以使用javax.print包及其子包构建自己的,但我想您会发现这是一项艰巨的工作,而且ServiceUIFactory已经做得很好。好的,谢谢,当我回到那个项目时,我将继续努力,让您所说的一切都能起作用:)