Drucken eines JFrame

Tallan

Bekanntes Mitglied
Hallo zusammen ich habe folgendes Problem,

ich würde gerenen einen JFrame ausdrucken, also im prinzip die GUI selbst.

Nach durcharbeiten des Tutorials Lesson: Printing (The Java™ Tutorials > 2D Graphics)
gelingt es mir auch zumindest einen teil aus zu drucken, leider ist dies immer nur das erste Element im JFrame, in Folgendem beispeil also nur das Label mit dem inhalt 1


Java:
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;

import javax.swing.JFrame;
import javax.swing.JLabel;



public class test extends JFrame implements Printable
{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	test frameToPrint;
	
    public test()
    {


        //Layout
        GridLayout layout = new GridLayout(3,1);
        	getContentPane().setLayout(layout);
        	getContentPane().add(new JLabel(" 1 "));
        	getContentPane().add(new JLabel(" 2 "));
        	getContentPane().add(new JLabel(" 3 "));
        	
        pack();
        this.setVisible(true);
    	frameToPrint = this;

    }

    
    public void doPrint() 
    {
        PrinterJob job = PrinterJob.getPrinterJob();
        job.setPrintable(frameToPrint);
        boolean ok = job.printDialog();
        if (ok) {
            try {
                 job.print();
            } catch (PrinterException ex) {
             /* The job did not successfully complete */
            	ex.printStackTrace();
            }
        }
   }





	@Override
	public int print(Graphics graphics, PageFormat pageFormat, int pageIndex)
			throws PrinterException {
		 if (pageIndex > 0) { /* We have only one page, and 'page' is zero-based */
	            return NO_SUCH_PAGE;
	        }

	        /* User (0,0) is typically outside the imageable area, so we must
	         * translate by the X and Y values in the PageFormat to avoid clipping
	         */
	        Graphics2D g2d = (Graphics2D)graphics;
	        g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());

	        /* Now print the window and its visible contents */
	        frameToPrint.printAll(g2d);

	        /* tell the caller that this page is part of the printed document */
	        return PAGE_EXISTS;

	}
	
	
	

    public static void main(String args[])
    {
    	//Frame erstellen
        test t1 = new test();
        //drucken
        t1.doPrint();
    }
}

Ich habe mich dabei am Tutorial orinetiert, in diesem ist auch ein Beispielcode der Leider auch nur den Inhalt der ersten Komponente ausgibt

Java:
/*
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 *   - Neither the name of Sun Microsystems nor the names of its
 *     contributors may be used to endorse or promote products derived
 *     from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */ 


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.print.*;

public class PrintUIWindow implements Printable, ActionListener {

    JFrame frameToPrint;

    public int print(Graphics g, PageFormat pf, int page) throws
                                                        PrinterException {

        if (page > 0) { /* We have only one page, and 'page' is zero-based */
            return NO_SUCH_PAGE;
        }

        /* User (0,0) is typically outside the imageable area, so we must
         * translate by the X and Y values in the PageFormat to avoid clipping
         */
        Graphics2D g2d = (Graphics2D)g;
        g2d.translate(pf.getImageableX(), pf.getImageableY());

        /* Now print the window and its visible contents */
        frameToPrint.printAll(g);

        /* tell the caller that this page is part of the printed document */
        return PAGE_EXISTS;
    }

    public void actionPerformed(ActionEvent e) {
         PrinterJob job = PrinterJob.getPrinterJob();
         job.setPrintable(this);
         boolean ok = job.printDialog();
         if (ok) {
             try {
                  job.print();
             } catch (PrinterException ex) {
              /* The job did not successfully complete */
             }
         }
    }

    public PrintUIWindow(JFrame f) {
        frameToPrint = f;
    }

    public static void main(String args[]) {
        UIManager.put("swing.boldMetal", Boolean.FALSE);
        JFrame f = new JFrame("Print UI Example");
        f.addWindowListener(new WindowAdapter() {
           public void windowClosing(WindowEvent e) {System.exit(0);}
        });
        JTextArea text = new JTextArea(50, 20);
        for (int i=1;i<=50;i++) {
            text.append("Line " + i + "\n");
        }
        JScrollPane pane = new JScrollPane(text);
        pane.setPreferredSize(new Dimension(250,200));
        f.add("Center", pane);
        JButton printButton = new JButton("Print This Window");
        printButton.addActionListener(new PrintUIWindow(f));
        f.add("South", printButton);
        f.pack();
        f.setVisible(true);
    }
}

hat jemand eine Idee woran das liegt?

Ich hab dazu zwar Zahlreiche posts und tutorials gefunden allerdings immer wieder das selbe Problem das ich nur Komponente der Gui drucken kann
 

Woodstock

Mitglied
Hallo,

schon mal darüber nachgedacht einen Screenshot zu drucken? Die Position deines JFrames hast du ja...

Java:
BufferedImage bi=robot.createScreenCapture(new Rectangle(600,700));

API Class Robot
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Nur ein Element sichtbar beim Drucken eines JFrame AWT, Swing, JavaFX & SWT 9
J bestimmten Bereich eines JPanels drucken AWT, Swing, JavaFX & SWT 2
A Swing Drucken eines JTextPanes AWT, Swing, JavaFX & SWT 7
D 2D-Grafik Problem beim Drucken eines Grafik-Objekts AWT, Swing, JavaFX & SWT 2
D Drucken eines "Formulars" in abgeänderter Form AWT, Swing, JavaFX & SWT 5
S Drucken eines Panels AWT, Swing, JavaFX & SWT 3
I Probleme beim Drucken auf einen PDF-Drucker AWT, Swing, JavaFX & SWT 8
I Rich Text drucken AWT, Swing, JavaFX & SWT 0
F JavaFX (Tree)TableView korrekt drucken AWT, Swing, JavaFX & SWT 1
F 2D-Grafik JTextArea drucken bringt mieses Ergebnis AWT, Swing, JavaFX & SWT 2
L Charset beim Drucken falsch AWT, Swing, JavaFX & SWT 2
Sugan JavaFX Bilder drucken AWT, Swing, JavaFX & SWT 0
O JTable linksbündig drucken (nicht der Zelleninhalt) AWT, Swing, JavaFX & SWT 2
M Swing PDF Datei nach drucken nicht löschbar AWT, Swing, JavaFX & SWT 6
F AWT Drucken verschluckt inhalt AWT, Swing, JavaFX & SWT 1
S JTable im Hoch- und Querformat angepasst drucken AWT, Swing, JavaFX & SWT 1
kaoZ JFrame Drucken AWT, Swing, JavaFX & SWT 8
B Drucken der JTextArea AWT, Swing, JavaFX & SWT 4
Z Drucken AWT, Swing, JavaFX & SWT 2
M JTable Drucken NullpointerException +JTable speichern AWT, Swing, JavaFX & SWT 6
C Swing Drucken von JPanel AWT, Swing, JavaFX & SWT 14
E Drucken von JPanel mit richtiger Skalierung AWT, Swing, JavaFX & SWT 5
L [SWT] Daten und Bilder drucken AWT, Swing, JavaFX & SWT 2
S AWT Drucken aus bestimmtem Papierfach AWT, Swing, JavaFX & SWT 7
S Probleme beim drucken AWT, Swing, JavaFX & SWT 13
M Swing JTable drucken/Darstellung AWT, Swing, JavaFX & SWT 2
W AWT Drucken ohne Druckdialog AWT, Swing, JavaFX & SWT 2
O JTable mit Inhalt drucken AWT, Swing, JavaFX & SWT 3
C Swing Briefe/Dokumente zum Drucken erstellen AWT, Swing, JavaFX & SWT 20
P Jpanel mit Komponenten drucken AWT, Swing, JavaFX & SWT 3
H AWT Oberer Seitenrand kann beim Drucken vom Anwender nicht verstellen werden. AWT, Swing, JavaFX & SWT 6
P Drucken von Jtextpane mit Seitenangabe AWT, Swing, JavaFX & SWT 1
A Probleme beim Drucken AWT, Swing, JavaFX & SWT 5
D Vorabberatung :) Briefe gestalten und drucken (als PDF) AWT, Swing, JavaFX & SWT 3
A Probleme beim Drucken (Seite wird abgeschnitten) AWT, Swing, JavaFX & SWT 2
N JTable: Drucken mit größerer RowHeight AWT, Swing, JavaFX & SWT 2
N JPanel nicht ganz drucken AWT, Swing, JavaFX & SWT 2
A Probleme mit dem Drucken AWT, Swing, JavaFX & SWT 2
K Seite zum drucken einrichten AWT, Swing, JavaFX & SWT 2
F Drucken in Java AWT, Swing, JavaFX & SWT 3
A Problem mit der Seiteneinrichtung beim Drucken AWT, Swing, JavaFX & SWT 7
A Drucken einer JList AWT, Swing, JavaFX & SWT 4
C JTable drucken AWT, Swing, JavaFX & SWT 7
O Panel drucken AWT, Swing, JavaFX & SWT 2
Y Problem beim Drucken AWT, Swing, JavaFX & SWT 2
A Drucken AWT, Swing, JavaFX & SWT 23
H JTable drucken mit Header AWT, Swing, JavaFX & SWT 4
& XHTML drucken mit (oder ohne) Flying Saucer AWT, Swing, JavaFX & SWT 12
C Fenster rücken beim Drucken in den Hintergrund AWT, Swing, JavaFX & SWT 6
& mehrseitige HTML-Dokumente drucken AWT, Swing, JavaFX & SWT 2
ARadauer jtable drucken unter java 1.3 AWT, Swing, JavaFX & SWT 2
B Unsichtbares JPanel drucken. AWT, Swing, JavaFX & SWT 14
C Text drucken? AWT, Swing, JavaFX & SWT 2
V Drucken in Java AWT, Swing, JavaFX & SWT 2
K Drucken von JTextComponenten AWT, Swing, JavaFX & SWT 2
R Drucken unter jdk 1.4 mit JTable AWT, Swing, JavaFX & SWT 11
B Ein großes JTextPane komplett drucken AWT, Swing, JavaFX & SWT 2
I Drucken: Programm stürzt bei AWT, Swing, JavaFX & SWT 7
I Fensterinhalt drucken AWT, Swing, JavaFX & SWT 2
E Drucken von JComponent. AWT, Swing, JavaFX & SWT 4
F Transparent bzw. transfluent(durscheinend) drucken? AWT, Swing, JavaFX & SWT 2
P Idee zum drucken von JTextField und JTable AWT, Swing, JavaFX & SWT 2
O JTable, mehrere Spalten drucken AWT, Swing, JavaFX & SWT 4
orenishii mehrseitig Images anzeigen und drucken SimpleBook.java AWT, Swing, JavaFX & SWT 5
R JPanel drucken AWT, Swing, JavaFX & SWT 5
foobar JTable im Hintergrund drucken AWT, Swing, JavaFX & SWT 2
S Drucken - Bild skalieren AWT, Swing, JavaFX & SWT 2
S JAI und das praktische Drucken AWT, Swing, JavaFX & SWT 4
S Drucken AWT, Swing, JavaFX & SWT 15
S JTable - Drucken AWT, Swing, JavaFX & SWT 10
G HTML aus JEditorPane drucken AWT, Swing, JavaFX & SWT 2
G JPanel drucken AWT, Swing, JavaFX & SWT 2
B componente drucken AWT, Swing, JavaFX & SWT 3
M Ein Bild aus einem Panel drucken? AWT, Swing, JavaFX & SWT 11
G Frage zum Drucken AWT, Swing, JavaFX & SWT 2
V Problem beim drucken AWT, Swing, JavaFX & SWT 4
L swing komponenten Drucken AWT, Swing, JavaFX & SWT 7
G JTextPane drucken AWT, Swing, JavaFX & SWT 2
T JEditorPane-content drucken AWT, Swing, JavaFX & SWT 2
T Drucken des Inhaltes einer JTextArea AWT, Swing, JavaFX & SWT 4
J JTextArea drucken AWT, Swing, JavaFX & SWT 4
@ Erzeugen einer Maske zum drucken AWT, Swing, JavaFX & SWT 2
G Drucken?? AWT, Swing, JavaFX & SWT 4
H JTable drucken AWT, Swing, JavaFX & SWT 4
K JPanel drucken AWT, Swing, JavaFX & SWT 4
P JTable drucken AWT, Swing, JavaFX & SWT 2
B JPanel Drucken AWT, Swing, JavaFX & SWT 1
jojoge wie kann ich in eine Benennung eines JButtons eine Variable einbauen? AWT, Swing, JavaFX & SWT 6
L paintComponent in Panel eines Borderlayouts hinzufügen AWT, Swing, JavaFX & SWT 3
I Einbindung eines jpg/png/icons in eine GUI AWT, Swing, JavaFX & SWT 1
Splayfer Umrandung eines AttributedStrings AWT, Swing, JavaFX & SWT 2
Guybrush Threepwood Einfachste Möglichkeit zum Abspielen eines Videos in Swing AWT, Swing, JavaFX & SWT 4
Jose05 NullPointerException bei Beschreiben eines Labels aus einem Array AWT, Swing, JavaFX & SWT 12
Jose05 zugreifen auf ein Objekt eines GridPanes AWT, Swing, JavaFX & SWT 0
melaniemueller Verschiebung eines Fensters über Button AWT, Swing, JavaFX & SWT 27
news2swen automatisches erstellen eines Languagefiles AWT, Swing, JavaFX & SWT 1
B Stylen eines JTextPane funktioniert nicht AWT, Swing, JavaFX & SWT 1
MiMa Schliessen eines FXML Fensters? AWT, Swing, JavaFX & SWT 10
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
L AWT Ändern der Farbe eines BufferedImage mit Farbähnlichkeit AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben