将TitleAreaDialog的图像移动到左侧

时间:2012-09-21 10:04:35

标签: java swt eclipse-rcp jface

我正在开发基于Java SE的SWT / Jface项目,我想将TitleAreaDialog的图像向左移动。可能吗 ?如果没有,那么呢?

谢谢,

2 个答案:

答案 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();