gpt4 book ai didi

java - 在 swt 中折叠或展开部分时自动调用哪些方法?

转载 作者:行者123 更新时间:2023-12-02 05:24:58 24 4
gpt4 key购买 nike

当一个部分被折叠时,该部分的容器(父)组合的大小会自动减小以匹配现在折叠部分的大小。所以我猜想像 layout() 这样的方法(似乎不是这个方法)在该部分被折叠时被称为该容器的默认(自动)。我想确切地知道该方法。因为我想在删除(处置)一个部分时发生同样的情况。当我处理该部分时,我想减小该容器组合的大小。

最佳答案

org.eclipse.ui.forms.widgets.SectionEclipse Forms API 的一部分并且可能无法在该上下文之外正确使用。

当该部分展开/折叠时 Section.reflow被调用,这本质上是调用 Composite.layout(true)在每个父 Composite 上直到 SharedScrolledComposite 的第一个实例(所以如果你不使用 SharedScrolledComposite 它可能无法正常工作)。当SharedScrolledComposite发现它调用SharedScrolledComposite.reflow(true) .

实际reflow代码:

protected void reflow() {
Composite c = this;
while (c != null) {
c.setRedraw(false);
c = c.getParent();
if (c instanceof SharedScrolledComposite || c instanceof Shell) {
break;
}
}
c = this;
while (c != null) {
c.layout(true);
c = c.getParent();
if (c instanceof SharedScrolledComposite) {
((SharedScrolledComposite) c).reflow(true);
break;
}
}
c = this;
while (c != null) {
c.setRedraw(true);
c = c.getParent();
if (c instanceof SharedScrolledComposite || c instanceof Shell) {
break;
}
}
}

调用 setRedraw只是为了停止闪烁。

关于java - 在 swt 中折叠或展开部分时自动调用哪些方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26138191/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com