Java Reference
In-Depth Information
demonstrates the use of
PrintSuit
.Asaresult the embedded text area and button
are printed; the frame itself however, is, not printed.
File:
its/Printing/PrintSuit.java
1.
package
its.Printing;
2.
3.
import
java.awt.Component;
4.
import
java.awt.Graphics;
5.
import
java.awt.print.PageFormat;
6.
import
java.awt.print.Printable;
7.
import
java.awt.print.PrinterException;
8.
import
java.awt.print.PrinterJob;
9.
import
javax.swing.RepaintManager;
10.
11.
public class
PrintSuit
implements
Printable {
12.
private
Component compToPrint;
13.
14.
public static void
printComponent(Component comp) {
15.
new
PrintSuit(comp).print();
16.
}
17.
18.
private
PrintSuit(Component comp) {
19.
this
.compToPrint = comp;
20.
}
21.
22.
public void
print() {
23.
PrinterJob printJob = PrinterJob.getPrinterJob();
24.
printJob.setPrintable(
this
);
25.
if
(printJob.printDialog()){
26.
try
{
27.
printJob.print();
28.
}
catch
(PrinterException pex) {
29.
pex.printStackTrace();
30.
}
31.
}
32.
}
33.
34.
public int
print(Graphics g, PageFormat pageFormat,
int
pageIndex) {
35.
if
(pageIndex > 0) {
36.
return
(NO_SUCH_PAGE);
37.
}
else
{
38.
int
x=(
int
)pageFormat.getImageableX() + 1;
39.
int
y=(
int
)pageFormat.getImageableY() + 1;
40.
g.translate(x,y);
41.
RepaintManager currentManager =
RepaintManager.currentManager(compToPrint)
Search WWH ::
Custom Search