2012-09-21 109 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不幸的是,這不能用一段代碼來完成,你需要幾個部分,你只能通過嘗試找到。 –

相關問題