{"id":1838,"date":"2013-02-24T12:08:17","date_gmt":"2013-02-24T10:08:17","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=1838"},"modified":"2013-02-24T12:08:17","modified_gmt":"2013-02-24T10:08:17","slug":"inselraus-jscrollpane-viewport-und-scrollable","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2013\/02\/inselraus-jscrollpane-viewport-und-scrollable\/","title":{"rendered":"Inselraus: JScrollPane Viewport und Scrollable"},"content":{"rendered":"<p><strong>Der Viewport<\/strong><\/p>\n<p>Den sichtbaren Ausschnitt der Fl\u00e4che bestimmt ein JViewport-Objekt, das mit zus\u00e4tzlichen Listenern etwa f\u00fcr die \u00c4nderungen des sichtbaren Bereichs ausgestattet werden kann. Die Methode getViewport() liefert das JViewport-Objekt. Die Methoden scrollRectToVisible(Rectangle) und setViewPosition(Point) des JViewport-Objekts erm\u00f6glichen die Ansteuerung des sichtbaren Bereichs.<\/p>\n<p>Beispiel: Zeige den sichtbaren Bereich auf dem Bildschirm an:<\/p>\n<pre>System.out.println( scrollPane.getViewport().getVisibleRect() );<\/pre>\n<p>Die JViewport-Methode getVisibleRect() stammt aus der direkten Oberklasse JComponent. Sie liefert ein Rectangle-Objekt, und getLocation() liefert den java.awt.Point vom Rechteck oben links.<\/p>\n<p>Jeweils auf die gegen\u00fcberliegende Seite der Rollbalken lassen sich Zeilen- und Spaltenleisten legen, genauso wie in alle vier Ecken Komponenten. Die Leisten liegen selbst wiederum in einem JViewport, um zum Beispiel im Fall einer Linealbeschriftung mitzuwandern. setRowHeaderView(), setColumnHeaderView() und setCorner() setzen bei der JScrollPane die Ecken und Leisten.<\/p>\n<p><strong>Die Schnittstelle Scrollable<\/strong><\/p>\n<p>Die komplexen Komponenten, wie etwa Textanzeigefelder, B\u00e4ume oder Tabellen, implementieren eine Verschiebef\u00e4higkeit nicht selbst, sondern m\u00fcssen dazu in einer JScrollPane Platz nehmen. Damit JScrollPane jedoch wei\u00df, wie zum Beispiel nach einem Klick auf den Bildlauf der Ausschnitt zu ver\u00e4ndern ist, implementieren die Komponenten die Schnittstelle Scrollable. Die zentralen Klassen JList, JTable, JTextComponent und JTree implementieren die Schnittstelle und teilen auf diese Weise Ma\u00dfe der Komponente und Anzahl der Pixel bei einer Verschiebung mit, wenn etwa der Anwender den Rollbalken um eine Position versetzt.<\/p>\n<p>Feature: Eine sinnvolle Eigenschaft ist der automatische Bildlauf. Bei diesem Verfahren wird der Bildlauf auch dann fortgesetzt, wenn der Mauszeiger die Komponente schon verlassen hat. Klickt der Benutzer etwa auf ein Element in einer Liste, und bewegt dann den Mauszeiger mit gedr\u00fcckter Maustaste aus der Liste heraus, so scrollt die Liste mit eingeschaltetem automatischen Bildlauf selbstst\u00e4ndig weiter. Die Eigenschaft wird in Swing \u00fcber die JComponent-Methode setAutoScroll(boolean) gesteuert.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Der Viewport Den sichtbaren Ausschnitt der Fl\u00e4che bestimmt ein JViewport-Objekt, das mit zus\u00e4tzlichen Listenern etwa f\u00fcr die \u00c4nderungen des sichtbaren Bereichs ausgestattet werden kann. Die Methode getViewport() liefert das JViewport-Objekt. Die Methoden scrollRectToVisible(Rectangle) und setViewPosition(Point) des JViewport-Objekts erm\u00f6glichen die Ansteuerung des sichtbaren Bereichs. Beispiel: Zeige den sichtbaren Bereich auf dem Bildschirm an: System.out.println( scrollPane.getViewport().getVisibleRect() ); [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[10],"tags":[],"class_list":["post-1838","post","type-post","status-publish","format-standard","hentry","category-swing"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/1838","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=1838"}],"version-history":[{"count":0,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/1838\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=1838"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=1838"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=1838"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}