2015-04-01 94 views
0

我最近在this post中實現JDatePicker的上下文中查看了以下代碼。這些JDatePicker屬性有什麼作用?

UtilDateModel model = new UtilDateModel(); 
//model.setDate(20,04,2014); 
// Need this... 
Properties p = new Properties(); 
p.put("text.today", "Today"); 
p.put("text.month", "Month"); 
p.put("text.year", "Year"); 
JDatePanelImpl datePanel = new JDatePanelImpl(model, p); 
// Don't know about the formatter, but there it is... 
JDatePickerImpl datePicker = new JDatePickerImpl(datePanel, new DateLabelFormatter()); 

我想知道什麼屬性鍵「text.month」和「text.year」做。我試着實現這個代碼,並且在忽略它們時說沒有改變。此外,我嘗試在Properties類中搜索Keys列表,發現沒有任何幫助。有人會知道這些屬性鍵是做什麼的,或者我可以如何知道是否忽略它們是可以接受的?

+0

只是猜測:也許這代表了窮人對內在化的解決方案;這意味着:在應用程序中,不要對字符串「Today」進行硬編碼,因爲當應用程序使用不同的語言時(例如德語),「today」字段應該更好地聲明「Heute」(德語爲「今天」)。這是我能想到的唯一解釋(當然,當字符串仍然在另一段代碼中硬編碼時,它不會幫助使用屬性)。 – GhostCat 2015-04-01 13:36:33

回答

0

這些是爲了國際化的支持。 JDateComponentFactory具有代碼來加載JDatePicker發行版中來自區域依賴資源包的那些代碼。我認爲你應該使用工廠而不是構造函數,並讓它適當地設置屬性,這樣你就不會與他們使用的關鍵字符串相關聯。