Java 将标题标题的图像向左移动

Java 将标题标题的图像向左移动,java,swt,eclipse-rcp,jface,Java,Swt,Eclipse Rcp,Jface,我正在做一个基于JavaSE的SWT/Jface项目,我想把TitlearReadialog的图像移到左边。可能吗?如果没有,还有吗 谢谢,无法使用API进行配置,布局是硬编码的。一种方法是侵入对话框控件并更改其布局数据,但实现自己的类可能更容易(例如使用titlearealog) 如果子类化titlearealog必须重写createContents(Composite)方法,否则titlearealog将通过调用createTitleArea()创建自己的标题区域。我建议您首先从titlea

我正在做一个基于JavaSE的SWT/Jface项目,我想把TitlearReadialog的图像移到左边。可能吗?如果没有,还有吗


谢谢,

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


如果子类化
titlearealog
必须重写
createContents(Composite)
方法,否则
titlearealog
将通过调用
createTitleArea()
创建自己的标题区域。我建议您首先从
titlearealog.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();

谢谢,我扩展了标题,但是我不知道怎么做。如果可能的话,您可以放一段代码吗?@GoodSpeed很遗憾,这不能用一段代码来完成,您需要几段代码,只有通过尝试才能找到。您还需要注意其他控件的附件(取决于对话框状态)布局是根据shell resize和其他一些事件重置的。没错,没有处理resize/消息更改事件的好方法。