java - 如何告诉 FieldEditorPreferencePage 以编程方式无效/重绘?
问题描述
我定义了一个自定义 FieldEditorPreferencePage。在 createFieldEditors 方法中,我使用自定义 FieldEditor 构造了一个简单的界面,该界面包含加载文件的按钮。当用户加载文件时,界面区域(按钮所在的位置)需要更改并显示其他特定的 gui。如何使 FieldEditorPreferencePage 无效?我使用了父复合的 layout() 方法,但没有任何反应。我在这里做错了什么?
public class MyPage extends FieldEditorPreferencePage {
...
private Composite fieldEditorParent;
private boolean fileLoaded = false;
@Override
protected void createFieldEditors() {
fieldEditorParent = this.getFieldEditorParent();
MyFieldEditor compositeFieldEditor = new MyFieldEditor(fieldEditorParent) {
if(fileLoaded) {
//draw file content
} else {
Button chooseButton = new Button(buttonsComposite, SWT.NONE);
chooseButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
//choose file
fileLoaded = true;
//invalidate page <-- THIS DOES NOT WORK!
fieldEditorParent.layout(true, true);
}
}
}
}
}
解决方案
推荐阅读
- java - 获取 org.testng.TestNGException:在类路径中找不到类:通过 testng.xml 运行我的程序期间 eclipse 中的错误
- python - Pygame 图形错误:无法打开 blue.png
- docker - Google App Engine - 使用特定 Linux 版本运行 docker 映像
- java - 如何使用这个给定的构造函数创建对象
- jquery - 如何在 jquery 中调整窗口大小时使 clearInterval 工作?
- python - asyncio.gather(*tasks) 仅等待所有任务的子集失败
- three.js - 如何将 Three.js 与 ParcelJS 捆绑器一起使用。(webpack 提供插件替代)
- python - 连接两个熊猫系列(不是 str 类型)的值太慢(线性复杂度)
- android - 如何在 Flutter 中的特定时间安排闹钟?
- ios - 在 iOS 应用程序中,如何在不共享完整 UIImage 的情况下与另一个 iCloud 用户共享照片,让 iCloud 处理这个问题?