|
|
|
@ -36,6 +36,7 @@ import javax.swing.event.ChangeListener;
|
|
|
|
|
import java.awt.AWTEvent; |
|
|
|
|
import java.awt.Adjustable; |
|
|
|
|
import java.awt.Color; |
|
|
|
|
import java.awt.Component; |
|
|
|
|
import java.awt.Container; |
|
|
|
|
import java.awt.Dimension; |
|
|
|
|
import java.awt.Insets; |
|
|
|
@ -268,8 +269,26 @@ public class FormArea extends JComponent implements ScrollRulerComponent {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
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() { |
|
|
|
|
widthPane.addActionListener( |
|
|
|
@ -411,8 +430,8 @@ public class FormArea extends JComponent implements ScrollRulerComponent {
|
|
|
|
|
if (root.acceptType(XWFitLayout.class)) { |
|
|
|
|
XWFitLayout layout = (XWFitLayout) root; |
|
|
|
|
layout.setContainerPercent(value / DEFAULT_SLIDER); |
|
|
|
|
layout.adjustCreatorsWhileSlide(percent); |
|
|
|
|
traverAndAdjust(layout, percent); |
|
|
|
|
layout.adjustCreatorsWhileSlide(percent); |
|
|
|
|
|
|
|
|
|
// 拖动滑块,先将内部组件百分比大小计算,再计算容器大小
|
|
|
|
|
|
|
|
|
@ -447,9 +466,8 @@ public class FormArea extends JComponent implements ScrollRulerComponent {
|
|
|
|
|
if (root.acceptType(XWFitLayout.class)) { |
|
|
|
|
XWFitLayout layout = (XWFitLayout) root; |
|
|
|
|
layout.setContainerPercent(1.0); |
|
|
|
|
|
|
|
|
|
layout.adjustCreatorsWhileSlide(0.0); |
|
|
|
|
traverAndAdjust(layout, 0.0); |
|
|
|
|
layout.adjustCreatorsWhileSlide(0.0); |
|
|
|
|
// 拖动滑块,先将内部组件百分比大小计算,再计算容器大小
|
|
|
|
|
|
|
|
|
|
Dimension d = new Dimension(layout.getWidth(), layout.getHeight()); |
|
|
|
|