2013-03-01 50 views
0

我第一次嘗試是:創建複合材料,其適應我的數據在Eclipse SWT

public MultiLangugeText(Composite parent, int style) { 
    super(parent, style); 
    setLayout(new RowLayout(SWT.HORIZONTAL)); 

    Map<Locale, String> texts = new HashMap<Locale, String>(); 
    texts.put(Locale.GERMAN, "Hey du"); 
    texts.put(Locale.ENGLISH, "Hey you"); 
    texts.put(Locale.FRENCH, "Bon Jour"); 
    setTexts(texts); 

public void setTexts(Map<Locale, String> texts) { 
    for (Locale locale : texts.keySet()) { 
     createTextComposite(locale, texts.get(locale)); 
    } 
} 

private void createTextComposite(Locale locle, String localizedString) { 
    Composite composite = formToolkit.createComposite(this, SWT.BORDER); 
    formToolkit.paintBordersFor(composite); 
    composite.setLayout(new RowLayout(SWT.HORIZONTAL)); 

    CLabel label = new CLabel(composite, SWT.NONE); 
    label.setText(locle.toString()); 
    formToolkit.adapt(label); 
    formToolkit.paintBordersFor(label); 

    Text txtString = new Text(composite, SWT.BORDER); 
    txtString.setText(localizedString); 
    formToolkit.adapt(txtString, true, true); 
} 

但這種代碼不會動用我的UI任何東西。至少當我嘗試在Deisigner和Preview中呈現它時。當我在應用程序中使用它時,我必須測試它是否有效。但我不知道錯誤在哪裏。

回答

0

好吧,它只在設計師失敗,而不是當你實際使用其他組合時。

+0

另一個不使用這些設計師的原因;) – Baz 2013-03-01 13:48:55

+0

也許,但Disgner也給了我很多代碼示例。很難找到設計師自己教給我的所有東西。所以最後:代碼和Deigner的組合是最好的。人們必須瞭解設計師所做的和打破的;) – Tarion 2013-03-04 13:48:06