4

我正在开发基于 Java SE 的 SWT/Jface 项目,我想将 TitleAreaDialog 的图像移到左侧。是否可以 ?如果没有的话,还有吗?

谢谢,

4

2 回答 2

2

无法使用 API 对其进行配置,布局是硬编码的。一种方法是侵入对话框控件并更改其布局数据,但实现您自己的类可能更容易(TitleAreaDialog用作示例)。

如果你子类化TitleAreaDialog你必须重写createContents(Composite)方法,否则TitleAreaDialog将通过调用创建自己的标题区域createTitleArea()。我建议您首先复制代码TitleAreaDialog.createContents()并开始替换您需要以不同方式完成的内容。如果没有实际做所有事情,我不知道到底需要做什么。

于 2012-09-21T10:44:23.913 回答
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();
于 2012-09-21T10:57:17.870 回答