@ -45,6 +45,7 @@ public class UIResizableContainer extends JPanel {
private boolean isLeftRightDragEnabled = true ;
private boolean isLeftRightDragEnabled = true ;
private boolean isDownPaneVisible = true ;
private boolean isDownPaneVisible = true ;
private int paraHeight ;
private int paraHeight ;
private int parentHeight = - 1 ;
public UIResizableContainer ( int direction ) {
public UIResizableContainer ( int direction ) {
this ( new JPanel ( ) , new JPanel ( ) , direction ) ;
this ( new JPanel ( ) , new JPanel ( ) , direction ) ;
@ -207,7 +208,8 @@ public class UIResizableContainer extends JPanel {
if ( verticalToolPane = = null | | downPane = = null ) {
if ( verticalToolPane = = null | | downPane = = null ) {
return ;
return ;
}
}
// REPORT-42913 如果用户修改了分辨率或者dpi,可能造成toolPaneY大于parent.getHeight,整个downPane将丢失,因此这里调整下toolPaneY
adjustToolPaneY ( parent ) ;
if ( direction = = Constants . RIGHT ) {
if ( direction = = Constants . RIGHT ) {
if ( isDownPaneVisible ) {
if ( isDownPaneVisible ) {
upPane . setBounds ( 0 , 0 , containerWidth - toolPaneHeight , toolPaneY ) ;
upPane . setBounds ( 0 , 0 , containerWidth - toolPaneHeight , toolPaneY ) ;
@ -236,6 +238,18 @@ public class UIResizableContainer extends JPanel {
}
}
}
}
private void adjustToolPaneY ( Container parent ) {
if ( parentHeight = = - 1 ) {
// 初始化下parentheight,存一下当前的父容器height
parentHeight = parent . getHeight ( ) ;
}
if ( parentHeight ! = parent . getHeight ( ) & & ( parent . getHeight ( ) - toolPaneHeight ) > = 0 ) {
// 调整toolPaneY,保证至少水平的拖拽条horizontToolPane不丢失
toolPaneY = Math . min ( toolPaneY , parent . getHeight ( ) - toolPaneHeight ) ;
parentHeight = parent . getHeight ( ) ;
}
}
@Override
@Override
public void addLayoutComponent ( String name , Component comp ) {
public void addLayoutComponent ( String name , Component comp ) {
}
}
@ -540,4 +554,4 @@ public class UIResizableContainer extends JPanel {
jf . setSize ( 500 , 500 ) ;
jf . setSize ( 500 , 500 ) ;
jf . setVisible ( true ) ;
jf . setVisible ( true ) ;
}
}
}
}