gpt4 book ai didi

java - SWT中如何高效配置资源?

转载 作者:行者123 更新时间:2023-11-30 09:37:44 25 4
gpt4 key购买 nike

我有一个简单的 SWT 应用程序,其中包含菜单和控件。我在应用程序中有可用的文本、表格和树,我需要显式调用 dispose 方法来清除当前对象并为在屏幕上显示其他小部件留出空间。如果小部件尚未激活,当我调用 dispose 方法时系统崩溃。有没有更好的方法来处理 Activity 小部件以便为另一个小部件留出空间?

最佳答案

如果您确实需要处理这些小部件,您可以保留一个已添加项目的列表。仅处理您添加到列表中的项目。

所以我会用我的主容器类覆盖 JFrame,并使用一两个方法将控件添加到列表中。 (如果您需要对它们的去向进行特殊控制,您也可以在添加控制方法中传递一个选项类)

class MainContainer extends JFrame {
private List<JComponent> currentComponents = new ArrayList<JComponent>();

public void addControl(JComponent newComp) {
// -- add it to the JFrame --
...

// -- make a note that it is on --
currentComponents.add(newComp);
}

public void removeControl(JComponent oldComp) {
// -- check if it is in the list --
if (currentComponents.contains(oldComp)) {
// -- remove it from the JFrame --
...

// -- remove it from the list --
currentComponents.remove(oldComp);
}
}
}

或者,您的所有组件都可以被覆盖并有一个标志显示为

private boolean isDisplayed();

方法与 私有(private) setDisplayed( boolean 状态);这样,当您执行添加时,将显示状态设置为 true,而当您执行删除时,仅当显示状态为 true 时才执行此操作,然后将状态设置为 false。

关于java - SWT中如何高效配置资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10386543/

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