标准打印对话框中的Swing:Properties按钮无效(Java 8)
下面的代码显示了标准AWT/Swing打印对话框。所有工作正常,但在对话框中单击“属性”按钮不会调用打印机属性对话框标准打印对话框中的Swing:Properties按钮无效(Java 8),java,swing,printing,awt,Java,Swing,Printing,Awt,下面的代码显示了标准AWT/Swing打印对话框。所有工作正常,但在对话框中单击“属性”按钮不会调用打印机属性对话框 import java.awt.GraphicsConfiguration; import java.awt.GraphicsEnvironment; import java.awt.print.PrinterJob; import java.util.Locale; import javax.print.DocFlavor; import javax.print.DocFla
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsEnvironment;
import java.awt.print.PrinterJob;
import java.util.Locale;
import javax.print.DocFlavor;
import javax.print.DocFlavor.SERVICE_FORMATTED;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.ServiceUI;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.swing.SwingUtilities;
public class PrintTryout {
public static void main(String[] args) {
Locale.setDefault(Locale.ENGLISH);
SwingUtilities.invokeLater(new PrintTryout()::startUp);
}
private void startUp() {
PrintService[] services = PrintServiceLookup.lookupPrintServices(
DocFlavor.INPUT_STREAM.JPEG, null);
PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet();
if (services.length > 0) {
GraphicsConfiguration gc = GraphicsEnvironment.getLocalGraphicsEnvironment()
.getDefaultScreenDevice().getDefaultConfiguration();
ServiceUI.printDialog(gc, 50, 50,
services, services[0],
SERVICE_FORMATTED.PAGEABLE,
attributes);
}
}
private void startUp2() {
PrinterJob pj = PrinterJob.getPrinterJob();
pj.printDialog();
}
}
如果将调用的方法更改为
startUp2
,则会出现另一个打印对话框,该对话框也有“属性”按钮。这个按钮工作正常:“我获取打印机设置”对话框。这是Java错误还是我出了什么问题?或者它对某些人来说是正确的(我从客户那里得到了这个bug)我怀疑通过将DocFlavor指定为图像,您是在“强制”页面大小的打印机属性。我一直使用startUp2,所以我不熟悉startUp中的代码。