swt テーブル コントロールのセル エディターとして CDateTime を使用しようとしています。スタンドアロンの CDateTime サンプル (ここから) を実行すると、次のようになります。
CDateTime は次のように作成されます。
final CDateTime cdt = new CDateTime(shell, CDT.DROP_DOWN | CDT.DATE_SHORT | CDT.COMPACT);
cdt.setSelection(new Date());
ドロップダウンの原因となっているアイコンに注目してください。これはカレンダーのように見えます。月/年が表示され、ヘッダーの左隅に 2 つの矢印ボタンと「今日」ボタンがあります。日付を選択すると、日付もテキストボックスに正しく書き込まれます。
ただし、セルエディターとして追加しようとすると、次のようになります。
アイコンが異なり、ヘッダー部分が異なることに注意してください。また、私がどのように日付を選択し、この奇妙な数字を取得したかにも注目してください - 月は 32 です! - テキストボックス。ポップアップが消えると、日付は正しくなりますが、この奇妙な動作は奇妙に見えて心配です。
次のように CDateTime を作成しました。
final int style = getStyle() | CDT.DATE_SHORT | CDT.DROP_DOWN | CDT.COMPACT ;
this.dateTime = new CDateTime(parent, style);
this.dateTime.setPattern("mm/dd/yyyy");
私は何を間違っていますか?