Reputation: 23216
// 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");
setPreferredSize( new Dimension ( 200,200 ) );
p.setBackground( Color.black );
fr.add(p);
p.add( print , BorderLayout.CENTER );
fr.pack();
fr.setVisible( true );
}
public void hookUpEvents() {
print.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent ae ) {
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable( new Printer() );
boolean doPrint = job.printDialog();
if( doPrint ) {
try {
job.print();
} catch( PrinterException exc) {
System.out.println( exc );
}
} else {
System.out.println("You cancelled the print");
}
}
});
}
public static void main( String args[] ) {
new Printer();
}
}
When I compile the code I get the following error:
Printer.java:9: Printer is not abstract and does not override abstract method print(Graphics,PageFormat,int) in Printable
class Printer extends JPanel implements Printable {
^ 1 error
How can i fix this error ?
Upvotes: 1
Views: 1362
Reputation: 5687
@Suhail: I guess you need to implement Printable inteface:-
class Printer extends JPanel implements java.awt.print.Printable
and add method:-
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex)
Upvotes: 2