|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JSplitPane
org.crosswire.common.swing.FixedSplitPane
public class FixedSplitPane
This is a hack to fix the setDividerLocation problem and other layout problems.
See Bug Parade 4101306, 4485465 for a description of the WIDE divider problem.
Bug Reports on JSplitpane setDividerLocation
4101306, 4125713, 4148530
From the javadoc for setDividerLocation(double):
-------------------------------------------
This method is implemented in terms of setDividerLocation(int).
This method immediately changes the size of the receiver based on
its current size. If the receiver is not correctly realized and on
screen, this method will have no effect (new divider location will
become (current size * proportionalLocation) which is 0).
-------------------------------------------
So, as you can see the JSplitPane MUST be visible invoking this method
otherwise it will not have the desired effect.
Another, Bug Report 4786896 notes that if the preferred sizes of the two components plus the divider of the split pane adds up to more than the preferred size of the JSplitPane, then JSplitPane will use the minimum size of the components.
Since the preferred way of managing the sizes of containers is not with pixel counts, the solution here is to set the preferred size to zero.
Distribution Licence: JSword is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2 as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. The License is available on the internet here, or by writing to: Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA The copyright to this program is held by it's authors. |
Licence
,
Serialized FormNested Class Summary |
---|
Nested classes/interfaces inherited from class javax.swing.JSplitPane |
---|
JSplitPane.AccessibleJSplitPane |
Nested classes/interfaces inherited from class javax.swing.JComponent |
---|
JComponent.AccessibleJComponent |
Nested classes/interfaces inherited from class java.awt.Container |
---|
Container.AccessibleAWTContainer |
Nested classes/interfaces inherited from class java.awt.Component |
---|
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy |
Field Summary | |
---|---|
private static Dimension |
DOT
|
private boolean |
firstValidate
|
private boolean |
hasProportionalLocation
|
private double |
proportionalLocation
|
private static long |
serialVersionUID
Serialization ID |
Fields inherited from class javax.swing.JComponent |
---|
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW |
Fields inherited from class java.awt.Component |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
Fields inherited from interface java.awt.image.ImageObserver |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
Constructor Summary | |
---|---|
FixedSplitPane()
Constructor for FixedSplitPane |
|
FixedSplitPane(int arg0)
Constructor for FixedSplitPane |
|
FixedSplitPane(int arg0,
boolean arg1)
Constructor for FixedSplitPane |
|
FixedSplitPane(int arg0,
boolean arg1,
Component arg2,
Component arg3)
Constructor for FixedSplitPane |
|
FixedSplitPane(int arg0,
Component arg1,
Component arg2)
Constructor for FixedSplitPane |
Method Summary | |
---|---|
protected void |
addImpl(Component comp,
Object constraints,
int index)
|
void |
setBottomComponent(Component comp)
|
void |
setDividerLocation(double newProportionalLoc)
Sets the divider location as a percentage of the JSplitPane's size. |
void |
setLeftComponent(Component comp)
|
void |
setRightComponent(Component comp)
|
void |
setTopComponent(Component comp)
|
void |
validate()
Validates this container and all of its subcomponents. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private static final Dimension DOT
private boolean firstValidate
private boolean hasProportionalLocation
private double proportionalLocation
private static final long serialVersionUID
Constructor Detail |
---|
public FixedSplitPane()
public FixedSplitPane(int arg0)
public FixedSplitPane(int arg0, boolean arg1)
public FixedSplitPane(int arg0, Component arg1, Component arg2)
public FixedSplitPane(int arg0, boolean arg1, Component arg2, Component arg3)
Method Detail |
---|
protected void addImpl(Component comp, Object constraints, int index)
addImpl
in class JSplitPane
public void setBottomComponent(Component comp)
setBottomComponent
in class JSplitPane
public void setLeftComponent(Component comp)
setLeftComponent
in class JSplitPane
public void setRightComponent(Component comp)
setRightComponent
in class JSplitPane
public void setTopComponent(Component comp)
setTopComponent
in class JSplitPane
public void validate()
validate
in class Container
public void setDividerLocation(double newProportionalLoc)
setDividerLocation
in class JSplitPane
|
Copyright ? 2003-2004 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |