# swing komponenten Drucken



## largo (14. Feb 2005)

Ich schaffe es nicht ein JFrame zu Drucken. Ich versuche das ganze über Awt technologie (gemäss )http://www.galileocomputing.de/openbook/javainsel4/javainsel_14_012.htm) zu lösen. Es wird aber einfach nichts ausgedruckt. Ich muss vielleicht noch sagen, dass dich kein Frame, sondern ein Jframe dem Printjob übergebe. Ist dies überhaupt möglich mit swing?


----------



## thE_29 (14. Feb 2005)

http://www.java-forum.org/de/viewtopic.php?t=7843 FAQ!

Was willst du drucken, nur irgendwas oder deinen Frame?


----------



## largo (14. Feb 2005)

eigentlich schon am liebsten den ganzen frame


----------



## largo (14. Feb 2005)

das komische ist, dass ich so zu sagen den selben code wie oben verlinkt benutze und einfach ein Jframe anstatt eiem Frame übergebe. Kann es sein, dass die ganze sache daran scheitert. Ist es in Swing wirklich so viel komplizierter ein Frame zu drucken?


----------



## thE_29 (14. Feb 2005)

Was tust du jetzt Frame oder JFrame, das sind 2 andere Sachen!

Desweiteren sollte man es nicht mischen!


```
import java.awt.Graphics;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.PrintJob;
import java.awt.Robot;



public class test extends Frame
{
    public test()
    {
        
        super("Test");
        this.setSize(200,200);
        this.setResizable(false);
        this.setLocationRelativeTo(null);
        java.awt.Button but = new java.awt.Button("Druck");
        this.add(but);
        but.addActionListener(new ActionListener(){
                /**
                 * Invoked when an action occurs.
                 */
                public void actionPerformed(ActionEvent e) {
                    doPrint();

                }
                });
        this.show();

    }

    private void doPrint()
    {
        PrintJob prJob = this.getToolkit().getPrintJob(this,"Seitendruck",null);
        Graphics pg = prJob.getGraphics();
        try{
            Robot robi = new Robot(this.getGraphicsConfiguration().getDevice());
            pg.drawImage(robi.createScreenCapture(this.getBounds()),0,0,this.getWidth(),this.getHeight(),this);
            pg.dispose();
            prJob.end();
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }

    }


    public static void main(String args[])
    {
        new test();
    }
}
```

Die Ränder passen net ganz, hab aber keine Zeit ;>


----------



## largo (14. Feb 2005)

Ich möche wenn möglich mit swing arbeiten, also mit JFrame. Ich verstehe, dass man es nicht mischen sollte, habe aber bis jetzt keine gescheite swing druckfunktion gefunden


----------



## thE_29 (14. Feb 2005)

Die Funktionen sind fast gleich wie oben nur isses halt statt Frame JFrame, siehe auch FAQ!

Glaub das schaffst du schon!


----------



## largo (14. Feb 2005)

vielen dank für deine Bemühung! Ich werds nochmal versuchen...


----------

