0

私の最初の試みは:

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 とプレビューでレンダリングしようとすると。アプリケーションで使用するときに、これが機能するかどうかをテストする必要があります。しかし、私はエラーがどこにあるのかわかりません。

4

1 に答える 1

0

実際にコンポジットを使用するときではなく、デザイナーでのみ失敗します。

于 2013-03-01T13:16:32.283 に答える