Salut, c encore moi avec mon probléme d'applet, j'ai laissé tombé la classe interne mais il me met une erreude compilation au niveau du book.append (psb, pf) il met cannot resolve symbole. D'aprés moi ca vien du paramétre psb qui doit être un objet printable mais je sais pas trop comment résoudre se probléme. Voici mon code si kelkun voit la solution, ca serais super. Merci d'avance pour votre aide.
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.applet.*;
import java.awt.print.*;
import javax.print.PrintService;
import java.util.StringTokenizer;
public class PrintTest extends Applet implements ActionListener{
private boolean isStandalone = false;
final static String text = "This is test1"
+ "This is test2";
final static String stars= "****";
private String textToPrint= stars;
Button test;
//applet constructor
public PrintTest(String s) {
textToPrint = s;
}
//get parameter
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}
//get information applet
public String getAppletInfo() {
return "Print Test";
}
//get information parameter
public String[][] getParameterInfo() {
return null;
}
//initialisation
public void init() {
setBackground(Color.white);
test = new Button("Test");
add(test);
test.addActionListener(this);
}
//event
public void actionPerformed(ActionEvent e) {
if (e.getSource() == test) {
//textToPrint= stars;
PrinterJob pj = PrinterJob.getPrinterJob();
PageFormat pf = pj.defaultPage();
Paper paper = pf.getPaper();
double ph = paper.getHeight();
double pw = paper.getWidth();
int x = 36;
int y = 36;
paper.setImageableArea( (double) x, (double) y, pw - 2 * (double) x,
ph - 2 * (double) y);
pf.setPaper(paper);
PrintTest psb = new PrintTest(stars);
Book book = new Book();
book.append(psb,pf); // print stars
pj.setPageable(book);
if (pj.printDialog())
try {
pj.print();
}
catch (PrinterException pe) {
System.out.println("Print Error");
}
}
}
//print
public int print(Graphics g, PageFormat format, int pageIndex) {
if (pageIndex >= 1)
return Printable.NO_SUCH_PAGE;
int ix = (int) format.getImageableX();
int iy = (int) format.getImageableY();
FontMetrics fM = g.getFontMetrics();
int ascent = (int) fM.getAscent();
if (pageIndex < 1) {
g.setColor(Color.black);
g.drawString(textToPrint, ix, iy + ascent);
}
return Printable.PAGE_EXISTS;
}
private String getPrinterInfo(PrinterJob pj) {
PrintService printer = pj.getPrintService(); // get printer
PageFormat pageFormat = pj.defaultPage();
Paper paper = pageFormat.getPaper();
return printer.toString(); // get printername
}
private String getPrinterName(String s) {
StringTokenizer sTok = new StringTokenizer(s, ":");
String printerName = s;
if (sTok.countTokens() > 1) {
while (sTok.hasMoreTokens()) {
printerName = sTok.nextToken();
}
}
return printerName;
}
}