我正在开发基于Java SE的SWT / Jface项目,我想将TitleAreaDialog的图像向左移动。可能吗 ?如果没有,那么呢?
谢谢,
答案 0 :(得分:2)
无法使用API配置它,布局是硬编码的。一种方法是入侵对话框控件并更改其布局数据,但实现自己的类可能更容易(以TitleAreaDialog
为例)。
如果您继承TitleAreaDialog
,则必须覆盖createContents(Composite)
方法,否则TitleAreaDialog
将通过调用createTitleArea()
创建自己的标题区域。我建议您首先复制TitleAreaDialog.createContents()
中的代码并开始替换您需要以不同方式完成的内容。我并不确切知道在没有真正做所有事情的情况下需要做些什么。
答案 1 :(得分:0)
您可以按如下方式修改图像标签的布局数据:
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();