hallo, ich bin dabei eine jtable zu drucken und das unter der java version 1.3
ich verwende dazu diesen code:
funktioniert eigentlich ganz gut, nur die überschriften werden mir nicht gedruckt. kann mir jemand sagen, woran das liegen könnte?
so ruf ich das ganze auf
danke für eure hilfe
ich verwende dazu diesen code:
Code:
public class Printer implements Printable
{
public static final int PORTRAIT=PageFormat.PORTRAIT;
public static final int LANDSCAPE=PageFormat.LANDSCAPE;
public static final int REVERSE_LANDSCAPE=PageFormat.REVERSE_LANDSCAPE;
public static void print(final Component component, final int orientation){
new Thread()
{
public void run(){
try{
Printable printable=new Printer(component);
PrinterJob job=PrinterJob.getPrinterJob();
PageFormat format=job.defaultPage();
if(orientation>=0) format.setOrientation(orientation);
job.setPrintable(printable,format);
if(job.printDialog()){
component.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
job.print();
component.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
}
catch (Exception e){
System.err.println(e);
}
}
}.start();
}
private Component myComponent;
protected Printer(Component component){
myComponent=component;
}
public int print(Graphics gr, PageFormat pageFormat, int pageIndex) throws PrinterException {
if(pageIndex!=0) return NO_SUCH_PAGE;
Graphics2D g=(Graphics2D)gr;
double x = pageFormat.getImageableX();
double y = pageFormat.getImageableY();
double w = pageFormat.getImageableWidth();
double h = pageFormat.getImageableHeight();
double cWidht = myComponent.getWidth();
double cHeight = myComponent.getHeight();
double sx= w/cWidht;
double sy= h/cHeight;
g.translate(x,y);
if(sy<sx){
g.scale(sy, sy);
}else{
g.scale(sx, sx);
}
myComponent.printAll(g);
return PAGE_EXISTS;
}
}
funktioniert eigentlich ganz gut, nur die überschriften werden mir nicht gedruckt. kann mir jemand sagen, woran das liegen könnte?
so ruf ich das ganze auf
Code:
Printer.print(jt, Printer.PORTRAIT);
danke für eure hilfe