2015-04-29 16 views
6

Tôi đang cố gắng CDateTime làm trình chỉnh sửa ô cho điều khiển bảng swt của mình. Khi tôi chạy một mẫu độc CDateTime (từ here), đây là những gì nó trông giống như:Hành vi lạ trong Tinh vân CDateTime

Regular CDT behavior

Các CDateTime được tạo ra như thế này:

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

Chú ý vào biểu tượng đó gây ra sự sụt giảm xuống - trông giống như lịch. Bạn có thể xem tháng/năm và có 2 nút mũi tên và nút "hôm nay" ở góc trái của tiêu đề. Ngày cũng được viết vào hộp văn bản chính xác khi bạn chọn một ngày.

Tuy nhiên, khi tôi cố gắng thêm nó như là một trình soạn thảo di động, đây là những gì nó trông giống như:

CDateTime as a cell editor

Chú ý rằng các biểu tượng khác và các bộ phận tiêu đề khác nhau. Cũng lưu ý cách tôi chọn một ngày và nhận được con số kỳ lạ này - với một tháng là 32! - trong hộp văn bản. Khi cửa sổ bật lên biến mất, ngày tháng chính xác, nhưng hành vi kỳ lạ này trông kỳ lạ và đáng lo ngại.

tôi tạo ra các CDateTime như thế này:

final int style = getStyle() | CDT.DATE_SHORT | CDT.DROP_DOWN | CDT.COMPACT ; 
    this.dateTime = new CDateTime(parent, style); 
    this.dateTime.setPattern("mm/dd/yyyy"); 

Tôi đang làm gì sai?

Trả lời

1

tôi biết đây là câu hỏi cũ, nhưng đây là câu trả lời: mẫu bạn đặt sai, "mm" biểu thị phút. thay vào đó bạn có thể sử dụng "MM" để nhận tháng:

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