8.4.3 | JSplitPane |
Das JSplitPane bietet die Möglichkeit, zwei Komponenten nebeneinander (JSplitPane.VERTICAL_SPLIT) oder untereinander (JSplitPane.HORIZONTAL_SPLIT) anzuzeigen, wobei bei Vergrößerung des Anzeigebereichs der einen Komponente der sichtbare Bereich der anderen proportional abnimmt.
Diese Veränderung geschieht über eine Leiste (Divider) zwischen den beiden Komponenten. Über die Methode
setOneTouchExpandable(boolean value)
kann man auf dieser Leiste zwei Buttons integrieren, mit denen man schnell die jeweilige Komponente maximiert anzeigen lassen kann.
Die Methode
setContinuousLayout(boolean value)
dient im Gegensatz dazu mehr zur Steigerung der Performance. Wenn der Parameter auf true gesetzt ist, wird bei Veränderung der Leistenposition durch die Mausbewegung sofort der Anzeigebereich neu berechnet und gezeichnet. Ist der Parameter auf false gesetzt, zeigt eine Linie zunächst nur die spätere Position der Leiste. Dies bietet ggf. bessere Performance.
Die Position der Leiste kann absolut in Pixeln oder prozentual (0.25 entspricht dabei 25%) über die Methoden
setDividerLocation(int location) setDividerLocation(double proportionalLocation)
angegeben werden. Die prozentuale Angabe kann allerdings erst berechnet werden, wenn die entsprechenden Komponenten bereits auf dem Bildschirm zu sehen sind.
JSplitPane splitPane = new JSplitPane( JSplitPane.VERTICAL_SPLIT, new JLabel(new ImageIcon("cow.jpg")), new JLabel(new ImageIcon("astronaut.jpg"))); splitPane.setOneTouchExpandable(true);