0
成爲虛假這是打印按鈕如何布爾這裏對自己
public void hookUpEvents() {
print.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(new Printer());
boolean doPrint = job.printDialog(); // boolean variable
if(doPrint) {
try {
job.print();
} catch(PrinterException exc) {
System.out.println(exc);
}
} else {
System.out.println("You cancelled the print");
}
}
});
}
當我與整個代碼一起編譯這個片段中,打印按鈕被顯示的動作偵聽器。以上是打印按鈕的動作偵聽器。
正如我點擊打印按鈕時,顯示該對話框:
自動後3-4秒您取消了打印顯示在CMD。 這是怎麼發生的?而當我點擊取消什麼都沒有顯示。 如何聲明job.printDialog();
自己返回false?
// Program to print simple text on a Printer
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.print.PrinterException;
import java.awt.print.*;
class Printer extends JPanel implements Printable {
JButton print;
Printer() {
buildGUI();
hookUpEvents();
}
public void buildGUI() {
JFrame fr = new JFrame("Program to Print on a Printer");
JPanel p = new JPanel();
print = new JButton("Print");
p.setBackground(Color.black);
fr.add(p);
p.add(print , BorderLayout.CENTER);
this.setPreferredSize(new Dimension (300,200));
fr.pack();
fr.setVisible(true);
}
public void hookUpEvents() {
print.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(Printer.this);
boolean doPrint = job.printDialog();
// PageFormat pf = job.pageDialog(job.defaultPage());
if(doPrint) {
try {
job.print();
} catch(PrinterException exc) {
System.out.println(exc);
}
} else {
System.out.println("You cancelled the print");
}
}
});
}
public int print(Graphics g , PageFormat pf , int pageIndex) throws PrinterException{
return PAGE_EXISTS;
}
public static void main(String args[]) {
new Printer();
}
}
當我編譯並運行它時,按預期工作... –
@ Oli Charlesworth它顯示else語句,如果我半分鐘內不做任何事情 –
我在運行代碼時沒有看到這種行爲。 –