2015-04-01 84 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发行版中来自区域依赖资源包的那些代码。我认为你应该使用工厂而不是构造函数,并让它适当地设置属性,这样你就不会与他们使用的关键字符串相关联。