1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

JPanel und JTable untereinander drucken

  • gomey
  • 19. August 2010 um 14:11
  • Unerledigt
  • gomey
    2
    gomey
    Mitglied
    Punkte
    15
    Beiträge
    2
    • 19. August 2010 um 14:11
    • #1

    Hi,

    Ich habe ein Applet gebaut in dem links ein großes JPanel und rechts 2 JTables sind. Das JPanel ist mit Graphics Zeugs gefüllt, die JTables mit Text.

    Meine print Methode sieht momentan folgendermaßen aus:

    Code
    public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
            if (pageIndex > 0) {
                return(NO_SUCH_PAGE);
            } else {
                Graphics2D g2 = (Graphics2D) g;
    
                //JPanel drucken
                g2.setClip(0, 94, 573, 502);
                g2.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
                paint(g2);            
    
    
                //JTable drucken
                g2.translate(-516, 44);
                g2.setClip(510, 415, 600, 200);
    
    
                paint(g2);
    
                return Printable.PAGE_EXISTS;
    
    
            }
        }
    Alles anzeigen

    So zeichne ich zwar die 2 Komponenten in etwa dahin, wo sie hingehören. Aber ich weiß auch, dass man JTables eigentlich so drucken kann, dass man den Text im Ergebnisfile (bei Verwendung eines PDF Printers) auswählen und verändern kann.

    Ich will also das JPanel auf der oberen Hälfte der Seite und die JTable darunter drucken, aber nicht wie ich es momentan mache (durch bloßes "zeichnen"), sondern auf eine elegantere Art und Weise. (Text sollte im PDF-File anwählbar sein)
    Beides einzeln zu drucken is kein Problem, ich brings nur nicht auf die selbe Seite :thinking_face:

    Hat jmd einen Vorschlag?

    Vielen Dank schonmal. LG, Markus

  • gomey
    2
    gomey
    Mitglied
    Punkte
    15
    Beiträge
    2
    • 23. August 2010 um 09:43
    • #2

    Ich habe das Problem gelöst.

    Die print Methode sieht jetzt wie folgt aus:

    Code
    public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
            if (pageIndex > 0) {
                return(NO_SUCH_PAGE);
            } else {
                Graphics2D g2 = (Graphics2D) g;
    
                //JPanel drucken
                myPanel.drawPanel(g2, pageFormat);
    
    
                //JTable drucken
                myTextTable.drawTable(g2, pageFormat);
    
    
                return Printable.PAGE_EXISTS;
    
    
            }
        }
    Alles anzeigen

    Ich habe die paint-Befehle einfach in die jeweilige Klasse ausgelagert, so wird jeder Bestandteil so gedruckt, wie es die eigene Klasse machen würde. Der Text meiner JTable ist somit anwählbar. Nach einem verlängerten Wochenende haut immer alles auf Anhieb hin. Sowas sollte für Programmierer gesetzlich vorgesehen sein :winking_face:

    Hier noch die drawPanel Methode:

    Code
    public Graphics2D drawPanel(Graphics2D  g, PageFormat pf) {
            g.translate(pf.getImageableX()-15, pf.getImageableY());
            g.setClip(0, 0, 500, 500);
            paint(g);
            return g;
        }

    drawTable ist nix anderes, einfach Grenzen ändern und passt.


    LG Markus

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung