我正在开发基于 Java SE 的 SWT/Jface 项目,我想将 TitleAreaDialog 的图像移到左侧。是否可以 ?如果没有的话,还有吗?
谢谢,
我正在开发基于 Java SE 的 SWT/Jface 项目,我想将 TitleAreaDialog 的图像移到左侧。是否可以 ?如果没有的话,还有吗?
谢谢,
无法使用 API 对其进行配置,布局是硬编码的。一种方法是侵入对话框控件并更改其布局数据,但实现您自己的类可能更容易(TitleAreaDialog
用作示例)。
如果你子类化TitleAreaDialog
你必须重写createContents(Composite)
方法,否则TitleAreaDialog
将通过调用创建自己的标题区域createTitleArea()
。我建议您首先复制代码TitleAreaDialog.createContents()
并开始替换您需要以不同方式完成的内容。如果没有实际做所有事情,我不知道到底需要做什么。
您可以修改图像标签的布局数据,如下所示:
TitleAreaDialog tad = new TitleAreaDialog(getShell()) {
@Override
protected Control createContents(Composite parent) {
Control control = super.createContents(parent);
Label label = getTitleImageLabel();
FormData data = (FormData) label.getLayoutData();
data.left = new FormAttachment(0, 0);
data.right = null;
return control;
}
};
tad.setTitle("title");
tad.setTitleImage(Activator.imageDescriptorFromPlugin(
Activator.PLUGIN_ID, "image.gif").createImage());
tad.open();