下面列出了javax.swing.JSplitPane#getRightComponent ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* TODO: to remove? doesn't seems to be used anywhere.
*/
protected void updateSplitLocation(JSplitPane split, int foo) {
Component left = split.getLeftComponent();
Component right = split.getRightComponent();
if(left == null) {
split.setDividerLocation(0);
return;
}
if(right == null) {
split.setDividerLocation(1);
return;
}
Dimension leftPS = left.getPreferredSize();
Dimension rightPS = right.getPreferredSize();
double location =
split.getOrientation() == JSplitPane.HORIZONTAL_SPLIT
? (double)leftPS.width / (leftPS.width + rightPS.width)
: (double)leftPS.height / (leftPS.height + rightPS.height);
split.setDividerLocation(location);
}
@Override
public int getMinimumDividerLocation(JSplitPane pane) {
int leftMin = super.getMinimumDividerLocation(pane);
Component second = pane.getRightComponent();
if ((second != null) && second.isVisible()) {
Dimension paneSize = splitPane.getSize();
Dimension maxSize = second.getMaximumSize();
Insets insets = pane.getInsets();
if (pane.getOrientation() == JSplitPane.HORIZONTAL_SPLIT) {
leftMin = Math.max(leftMin, paneSize.width - insets.right - maxSize.width);
} else {
leftMin = Math.max(leftMin, paneSize.height - insets.bottom - maxSize.height);
}
/*
* To avoid inconsistency with the maximum location, it would seem
* reasonable to do:
*
* leftMin = Math.min(leftMin, getMaximumDividerLocation(pane));
*
* however, the parent already calls getMinimumDividerLocation()
* in getMaximumDividerLocation(), so that would be a good way
* to get a stack overflow.
*/
}
return leftMin;
}
/** Removes a real component from a real container.
* @param container instance of a real container
* @param containerDelegate effective container delegate of the container
* @param component component to be removed
* @return whether it was possible to remove the component (some containers
* may not support removing individual components reasonably)
*/
@Override
public boolean removeComponentFromContainer(Container container,
Container containerDelegate,
Component component)
{
if( !(containerDelegate instanceof JSplitPane) ) {
return false; // should not happen
}
JSplitPane splitPane = (JSplitPane) containerDelegate;
if( component == splitPane.getLeftComponent() ) {
if( super.removeComponentFromContainer(container, containerDelegate, component) ) {
JButton left = (JButton) splitPane.getClientProperty(LEFT_TOP_BUTTON);
if( left != null ) {
// fall back to the default swing setting
splitPane.setLeftComponent(left);
splitPane.putClientProperty(LEFT_TOP_BUTTON, null);
}
return true;
}
} else if ( component == splitPane.getRightComponent() ) {
if( super.removeComponentFromContainer(container, containerDelegate, component) ) {
JButton right = (JButton) splitPane.getClientProperty(RIGHT_BOTTOM_BUTTON);
if( right != null ) {
// fall back to the default swing setting
splitPane.setRightComponent(right);
splitPane.putClientProperty(RIGHT_BOTTOM_BUTTON, null);
}
return true;
}
}
return super.removeComponentFromContainer(container, containerDelegate, component);
}
private Component getSecondComponent(JSplitPane splitPane) {
if (splitPane.getOrientation() == JSplitPane.HORIZONTAL_SPLIT) {
return splitPane.getRightComponent();
} else {
return splitPane.getBottomComponent();
}
}
private Component getSecondComponent(JSplitPane splitPane) {
if (splitPane.getOrientation() == JSplitPane.HORIZONTAL_SPLIT) {
return splitPane.getRightComponent();
} else {
return splitPane.getBottomComponent();
}
}
private JTree getTree(TabData tabData){
if(tabData==null){
return null;
}
JSplitPane selSplitPane = (JSplitPane)tabData.getComponent();
JSplitPane rightSplitPane = (JSplitPane)selSplitPane.getRightComponent();
JScrollPane sp = (JScrollPane)rightSplitPane.getLeftComponent();
JViewport vp = (JViewport)sp.getComponent(0);
JTree t = (JTree)vp.getComponent(0);
return t;
}
private JTable getTable(int tabIndex){
if(tabIndex >= 0){
TabData selTabData = tabDataModel.getTab(tabIndex);
JSplitPane selSplitPane = (JSplitPane)selTabData.getComponent();
JSplitPane rightSplitPane = (JSplitPane)selSplitPane.getRightComponent();
JScrollPane sp = (JScrollPane)rightSplitPane.getRightComponent();
JViewport vp = (JViewport)sp.getComponent(0);
JTable t = (JTable)vp.getComponent(0);
return t;
}
return null;
}