JAVA + Swing Viewport ausdrucken

Übersicht Andere Programmiersprachen Allgemein

Neue Antwort erstellen

the FR3AK

Betreff: JAVA + Swing Viewport ausdrucken

BeitragMo, Apr 29, 2013 9:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich habe ein JPanel, dessen Inhalt ich drucken möchte, der Inhalt dieses Panels kann vergrößert und verkleinert werden, indem man mit dem Mausrad hoch oder runterscrollt. Wenn der Inhalt größer als
das Panel ist, erscheinen am Rand Scrollbars mit denen ich die Ansicht horizontal sowie vertikal verschieben kann. Nun möchte ich immer den aktuell angezeigten Bereich ausdrucken.
Ich habe es schon hinbekommen, dass der Angezeigte Bereich gedruckt wird, jedoch wird der X/Y-Versatz im Falle, dass man gescrollt hat, nicht berücksichtigt.
Meine Frage ist deshalb, wie kann ich die Scrollposition herausfinden und richtig verrechnen?

Hier der Code der print Methode:

Code: [AUSKLAPPEN]
        public int print(Graphics pg, PageFormat pf, int pageNum)
        {
          if (pageNum > 0)
          {
             return Printable.NO_SUCH_PAGE;
          }

          Graphics2D g2 = (Graphics2D) pg;
          JPanel da = RGFrame.exemplar().getRgDrawingArea();
          JScrollPane sp = RGFrame.exemplar().getRgScrollPane();
          
          double x = pf.getImageableX();
          double y = pf.getImageableY();
          double w = pf.getImageableWidth();
          double h = pf.getImageableHeight();
            
          double sx= w/sp.getWidth();
          double sy= h/sp.getHeight();
          
          g2.translate(x,y);
          g2.scale(sx, sy);
            
          da.paint(g2);
          
          return Printable.PAGE_EXISTS;
        }


Ich denke ich muss an den Parametern für g2.translate herumschrauben, aber wie?

Danke für eine Antwort.

Neue Antwort erstellen


Übersicht Andere Programmiersprachen Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group