2015-04-29 30 views
6

我想CDateTime作爲我的swt表格控件的單元格編輯器。當我運行一個獨立的CDateTime樣品(來自here),這是它的樣子:星雲中的奇怪行爲CDateTime

Regular CDT behavior

的CDateTime是這樣創建的:

final CDateTime cdt = new CDateTime(shell, CDT.DROP_DOWN | CDT.DATE_SHORT | CDT.COMPACT); 
cdt.setSelection(new Date()); 

注意,導致下降的圖標下來 - 它看起來像一個日曆。您可以查看月份/年份,並且標題左上角有2個箭頭按鈕和一個「今天」按鈕。選擇日期時,日期也會正確寫入文本框。

然而,當我嘗試將其添加爲一個單元格編輯器,這是它的樣子:

CDateTime as a cell editor

注意,圖標是不同的頁眉部分是不同的。另外注意我是如何選擇一個日期並得到這個奇怪的數字 - 一個月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"); 

我在做什麼錯?

回答

1

我知道這是一個老問題,但這裏是答案:你設置的模式是錯誤的,「mm」代表分鐘。相反,您可以使用「MM」獲取月份:

dateTime.setPattern("MM/dd/yyyy");