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