Avatar billede bsp Nybegynder
25. august 2002 - 16:05 Der er 4 kommentarer og
1 løsning

Print en JFrame

Hejsa

Jeg ønsker at kunne printe mit indhold i en JFrame ud..

jeg har søgt flere steder men synes ikke rigtig at kunne finde noget konkret svar..

er der nogen der har noget kodeværk de kunne vise så man lige kunne få et svar på dette
Avatar billede aslan Nybegynder
25. august 2002 - 16:50 #1
Når du kører metoden udskriv, udskriver den hele din frame.....


    public void udskriv()
    {


        RepaintManager.currentManager(this).setDoubleBufferingEnabled(false);

        PrinterJob pj=PrinterJob.getPrinterJob();

        pj.setPrintable(Kvittering.this);
        pj.printDialog();

        try{
            pj.print();
        }catch (Exception ex) {System.out.println(ex);}

    }
    public void onPrint()
    {

        PrinterJob printJob = PrinterJob.getPrinterJob();

        PageFormat pf = printJob.defaultPage();
        pf.setOrientation(PageFormat.PORTRAIT);
        printJob.validatePage(pf);

        printJob.setPrintable(this);

          if (printJob.printDialog())
          {
            try
            {
            printJob.print();

            }
            catch (Exception ex)
            {
                System.out.println(ex);
            }
          }
    }
 
public int print (Graphics g, PageFormat pf, int pageIndex) {
double escala=1;
int nbPages=0;
Graphics h;
double pageHeight = 0;
double pageWidth = 0;

try {
pageWidth=pf.getImageableWidth();
pageHeight=pf.getImageableHeight();

escala=pageWidth/getWidth();
System.out.println("page width : "+pageWidth);
System.out.println("escala : "+ escala);
nbPages=(int)Math.ceil((escala*getHeight())/pageHeight);
System.out.println("num paginas : "+ nbPages);
Graphics2D g2 = (Graphics2D)g;
System.out.println("print page index : "+pageIndex);
if (pageIndex >= nbPages)
return NO_SUCH_PAGE;
g2.translate(pf.getImageableX(), pf.getImageableY());
g2.translate(0f, -pageIndex*pageHeight);
g2.scale(escala,escala);
disableDoubleBuffering(this);
this.paint(g2);
enableDoubleBuffering(this);
return PAGE_EXISTS;
}
catch (Exception e)
{
e.printStackTrace();
return NO_SUCH_PAGE; }

}
Avatar billede aslan Nybegynder
25. august 2002 - 16:52 #2
Husk lige at lave denne linje om :

pj.setPrintable(Kvittering.this);

så den passer med din frame altså:

pj.setPrintable(dinFrame.this);
Avatar billede bsp Nybegynder
25. august 2002 - 17:11 #3
Den siger at min frame ikke er fundet i klassen

min frame skulle være erklæret
Avatar billede aslan Nybegynder
25. august 2002 - 17:18 #4
det skal være navnet på din klasse.....
Avatar billede bsp Nybegynder
11. september 2002 - 15:13 #5
lukker...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester