schmitzm.swing
Class MultiSplitPane
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
schmitzm.swing.MultiSplitPane
- All Implemented Interfaces:
- ImageObserver, MenuContainer, Serializable
public class MultiSplitPane
- extends JComponent
Diese Klasse wurde urspruenglich 2002/2003 von Martin Schmitz
fuer die ADAGIOS-Java-Library (Universitaet Bonn) erstellt, 2009 in das
SCHMITZM-Projekt uebernommen und teilweise erweitert.
Ein MultiSplitPane
ist eine Menge von horizontal oder
vertikal angeordneten Containern.
Die Groesse dieser Container
kann durch den Benutzer manuell
veraendert werden, in dem er die Trennlinien ("Dividers") zwischen den
Containern verschiebt.
Das MultiSplitPane
ist implementiert als eine baumartige
Verschachtelung von JSplitPane
-Objekten, in denen immer
genau zwei Komponenten hinterlegt werden koennen.
Aus diesem Grund kann die Darstellung der Randbereiche recht
unregelmaessig erscheinen. Deshalb ist es sinnvoll, den Rand entweder
komplett auszuschalten (setInnerBorder(null)
), oder einen
unsichtbaren Rand zu verwenden (setInnerBorder( new EmptyBorder(..) )
.
Dies gilt vor allem, wenn man ein MultiSplitPane
mit vielen
Containern verwendet (mehr als 6 oder 7).
- Author:
- Martin Schmitz (University of Bonn/Germany)
- See Also:
JSplitPane
,
JComponent
,
setInnerBorder(Border)
,
EmptyBorder
,
Serialized Form
Constructor Summary |
MultiSplitPane(int compCount)
Erzeugt ein neues MultiSplitPane. |
MultiSplitPane(int compCount,
int orientation)
Erzeugt ein neues MultiSplitPane. |
Method Summary |
protected void |
checkOrientation(int orientation)
Checkt, ob die angegebene Orientierung gueltig ist. |
Container |
getContainer(int i)
Liefert den Inhalt eine Teil-Panes. |
int |
getContainerCount()
Liefert die Anzahl an Komponenten, in die das SplitPane aufgeteilt ist. |
int |
getDividerSize()
Liefert die Groesse des Dividers (in Pixeln). |
Border |
getInnerBorder()
Liefert die Border des MultiSplitPane |
int |
getOrientation()
Liefert die Orientierung in der die Container des MultiSplitPanes
angeordnet sind. |
double[] |
getResizeWeight()
Liefert die Gewichte aller Containers, mit deren Anteil diese bei
einer Platzvergroesserung beruecksichtigt werden. |
double |
getResizeWeight(int i)
Liefert das gesetzte Gewicht eines Containers, mit dessen Anteil
dieser bei einer Platzvergroesserung beruecksichtigt wird. |
void |
setContainer(int i,
Container cont)
Setzt den Inhalt eine Teil-Panes. |
void |
setDividerSize(int size)
Setzt die Groesse der Divider-Balken. |
void |
setInnerBorder(Border border)
Setzt die Border fuer alle Container. |
void |
setOrientation(int orientation)
Aendert die Orientierung des SplitPanes. |
void |
setResizeWeigth(double[] weight)
Setzt die Container-Gewichtungen, mit deren Anteil diese bei einer
Platzvergroesserung beruecksichtigt werden. |
Methods inherited from class javax.swing.JComponent |
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI |
Methods inherited from class java.awt.Container |
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree |
Methods inherited from class java.awt.Component |
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle |
HORIZONTAL_SPLIT
public static final int HORIZONTAL_SPLIT
- See Also:
- Constant Field Values
VERTICAL_SPLIT
public static final int VERTICAL_SPLIT
- See Also:
- Constant Field Values
MultiSplitPane
public MultiSplitPane(int compCount)
- Erzeugt ein neues MultiSplitPane. Dieses muss aus mindestens
2 Containern bestehen. Diese werden horizontal angeordnet.
- Parameters:
compCount
- Anzahl an Containern im MultiSplitPane
- Throws:
IllegalArgumentException
- falls die
Container-Anzahl < 2 ist.
MultiSplitPane
public MultiSplitPane(int compCount,
int orientation)
- Erzeugt ein neues MultiSplitPane. Dieses muss aus mindestens
2 Containern bestehen. Moegliche Orientierungen:
HORIZONTAL_SPLIT
VERTICAL_SPLIT
- Parameters:
compCount
- Anzahl an Containern im MultiSplitPaneorientation
- Orientierung des MultiSplitPane
- Throws:
IllegalArgumentException
- falls die Orientierung
ungueltig ist oder die Container-Anzahl < 2 ist.
getContainerCount
public int getContainerCount()
- Liefert die Anzahl an Komponenten, in die das SplitPane aufgeteilt ist.
getContainer
public Container getContainer(int i)
- Liefert den Inhalt eine Teil-Panes.
- Parameters:
i
- Index des Teil-Panes (von links/oben nach rechts/unten)
- Throws:
ArrayIndexOutOfBoundsException
- falls ein ungueltiger
Index angegeben wird
setContainer
public void setContainer(int i,
Container cont)
- Setzt den Inhalt eine Teil-Panes.
- Parameters:
i
- Index des Teil-Panes (von links/oben nach rechts/unten)cont
- neuer Inhalt des Teil-Panes
- Throws:
ArrayIndexOutOfBoundsException
- falls ein ungueltiger
Index angegeben wird
getOrientation
public int getOrientation()
- Liefert die Orientierung in der die Container des MultiSplitPanes
angeordnet sind.
- See Also:
setOrientation(int)
setOrientation
public void setOrientation(int orientation)
- Aendert die Orientierung des SplitPanes. Moegliche
Orientierungen:
HORIZONTAL_SPLIT
VERTICAL_SPLIT
- Parameters:
orientation
- neue Orientierung
- Throws:
IllegalArgumentException
- falls die Orientierung
ungueltig ist- See Also:
getOrientation()
checkOrientation
protected void checkOrientation(int orientation)
- Checkt, ob die angegebene Orientierung gueltig ist. Andernfalls wird
eine Exception geworfen.
- Parameters:
orientation
- Orientierung
- Throws:
IllegalArgumentException
- falls die Orientierung
ungueltig ist
getDividerSize
public int getDividerSize()
- Liefert die Groesse des Dividers (in Pixeln).
setDividerSize
public void setDividerSize(int size)
- Setzt die Groesse der Divider-Balken. Die Darstellung des "laestigen"
einpixligen Strichs laesst sich zwar verhindern, indem man die
Divider-Groesse auf 0 setzt, leider sind dann aber auch die Groessen der
einzelnen Container nicht mehr veraenderbar!!
- Parameters:
size
- Groesse in Pixeln- See Also:
getDividerSize()
getResizeWeight
public double getResizeWeight(int i)
- Liefert das gesetzte Gewicht eines Containers, mit dessen Anteil
dieser bei einer Platzvergroesserung beruecksichtigt wird.
- Parameters:
i
- Index des Teil-Panes (von links/oben nach rechts/unten)
- Throws:
ArrayIndexOutOfBoundsException
- falls ein ungueltiger
Index angegeben wird- See Also:
setResizeWeigth(double[])
getResizeWeight
public double[] getResizeWeight()
- Liefert die Gewichte aller Containers, mit deren Anteil diese bei
einer Platzvergroesserung beruecksichtigt werden.
- See Also:
getResizeWeight(int)
,
setResizeWeigth(double[])
setResizeWeigth
public void setResizeWeigth(double[] weight)
- Setzt die Container-Gewichtungen, mit deren Anteil diese bei einer
Platzvergroesserung beruecksichtigt werden. Bei der Angabe der
Gewichte sind folgende Punkte zu beachten:
- Die Summe der angegebenen Gewichte darf 1 nicht ueberschreiten.
- Es duerfen hoechstens so viele Gewichte angegeben werden, wie
Container im
MultiSplitPane
vorhanden sind.
- Werden genau so viele Gewichte angegeben, wie Container im
MultiSplitPane
vorhanden sind, muss die Summe der
Gewichte 1 ergeben
- Werden weniger Gewichte als vorhandene Container angegeben, so wird
das restliche Gewicht gleichmaessig auf die uebrigen Container
verteilt.
- Parameters:
weight
- neue Gewichte
- Throws:
IllegalArgumentException
- falls eine der obigen
Bedingungen verletzt ist.
getInnerBorder
public Border getInnerBorder()
- Liefert die Border des
MultiSplitPane
setInnerBorder
public void setInnerBorder(Border border)
- Setzt die Border fuer alle Container.