@ -36,6 +36,7 @@ import javax.swing.event.ChangeListener;
import java.awt.AWTEvent ;
import java.awt.AWTEvent ;
import java.awt.Adjustable ;
import java.awt.Adjustable ;
import java.awt.Color ;
import java.awt.Color ;
import java.awt.Component ;
import java.awt.Container ;
import java.awt.Container ;
import java.awt.Dimension ;
import java.awt.Dimension ;
import java.awt.Insets ;
import java.awt.Insets ;
@ -268,8 +269,26 @@ public class FormArea extends JComponent implements ScrollRulerComponent {
}
}
}
}
LayoutUtils . layoutContainer ( root ) ;
LayoutUtils . layoutContainer ( root ) ;
updateCreatorsBackupBound ( root ) ;
}
}
/ * *
* 给所有自适应布局内部的组件设置backupBounds
* @param creator
* /
private void updateCreatorsBackupBound ( XCreator creator ) {
if ( creator . acceptType ( XWFitLayout . class ) ) {
( ( XWFitLayout ) creator ) . updateCreatorsBackupBound ( ) ;
}
for ( int i = 0 ; i < creator . getComponentCount ( ) ; i + + ) {
Component object = creator . getComponent ( i ) ;
if ( object instanceof XCreator ) {
updateCreatorsBackupBound ( ( XCreator ) object ) ;
}
}
}
//设置宽度的控件及响应事件
//设置宽度的控件及响应事件
private void addWidthPaneListener ( ) {
private void addWidthPaneListener ( ) {
widthPane . addActionListener (
widthPane . addActionListener (
@ -411,8 +430,8 @@ public class FormArea extends JComponent implements ScrollRulerComponent {
if ( root . acceptType ( XWFitLayout . class ) ) {
if ( root . acceptType ( XWFitLayout . class ) ) {
XWFitLayout layout = ( XWFitLayout ) root ;
XWFitLayout layout = ( XWFitLayout ) root ;
layout . setContainerPercent ( value / DEFAULT_SLIDER ) ;
layout . setContainerPercent ( value / DEFAULT_SLIDER ) ;
layout . adjustCreatorsWhileSlide ( percent ) ;
traverAndAdjust ( layout , percent ) ;
traverAndAdjust ( layout , percent ) ;
layout . adjustCreatorsWhileSlide ( percent ) ;
// 拖动滑块,先将内部组件百分比大小计算,再计算容器大小
// 拖动滑块,先将内部组件百分比大小计算,再计算容器大小
@ -449,7 +468,6 @@ public class FormArea extends JComponent implements ScrollRulerComponent {
layout . setContainerPercent ( 1 . 0 ) ;
layout . setContainerPercent ( 1 . 0 ) ;
traverAndAdjust ( layout , 0 . 0 ) ;
traverAndAdjust ( layout , 0 . 0 ) ;
layout . adjustCreatorsWhileSlide ( 0 . 0 ) ;
layout . adjustCreatorsWhileSlide ( 0 . 0 ) ;
// 拖动滑块,先将内部组件百分比大小计算,再计算容器大小
// 拖动滑块,先将内部组件百分比大小计算,再计算容器大小
Dimension d = new Dimension ( layout . getWidth ( ) , layout . getHeight ( ) ) ;
Dimension d = new Dimension ( layout . getWidth ( ) , layout . getHeight ( ) ) ;