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
Alles
  • Alles
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Mitglieder
  3. gomey

Beiträge von gomey

  • JPanel und JTable untereinander drucken

    • gomey
    • 23. August 2010 um 09:43

    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

  • JPanel und JTable untereinander drucken

    • gomey
    • 19. August 2010 um 14:11

    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

Rechtliches

Impressum

Datenschutzerklärung