2012-09-21 71 views

回答

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(); 
+1

您还需要注意其他控件的附件(取决于对话框的状态)以及响应shell调整大小和其他一些事件而重置布局的事实。 –

+0

你是对的,没有好的方法来处理调整大小/消息更改事件。 –

2

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

如果你继承你TitleAreaDialog必须重写createContents(Composite)方法,否则TitleAreaDialog将通过调用createTitleArea()创建自己的标题区。我建议你首先复制TitleAreaDialog.createContents()的代码,并开始替换你需要以不同方式完成的工作。如果没有真正做到一切,我都不清楚需要做什么。

+0

谢谢你,我延长了TitleAreaDialog,但我不知道该怎么做。如果有可能你可以放一段代码? – GoodSpeed

+0

@GoodSpeed不幸的是,这不能用一段代码来完成,你需要几个部分,你只能通过尝试找到。 –

相关问题