我使用從this stackOverflow post的代碼,做什麼,我希望:爲什麼UIManager.getDefaults()的keySet()返回比UIManager.getDefaults不同的值()。鍵()?
Enumeration<Object> keys = UIManager.getDefaults().keys();
while (keys.hasMoreElements()) {
Object key = keys.nextElement();
Object value = UIManager.get(key);
if (value instanceof FontUIResource) {
FontUIResource orig = (FontUIResource) value;
Font font = new Font(orig.getFontName(), orig.getStyle(), orig.getSize());
UIManager.put(key, new FontUIResource(font));
}
}
我試圖把它重構爲下面的代碼,它只是通過幾個類javax.swing.plaf中,而不是循環全套組件。我試着圍繞Swift API和HashTable API進行挖掘,但是我覺得我仍然缺少一些明顯的東西。
for(Object key : UIManager.getDefaults().keySet()){
Object value = UIManager.get(key);
if(value instanceof FontUIResource){
FontUIResource orig = (FontUIResource) value;
Font font = new Font(orig.getFontName(), orig.getStyle(), orig.getSize());
UIManager.put(key, new FontUIResource(font));
}
}
爲什麼第一個代碼塊遍歷和更改所有字體資源,而僅次於遍歷項目屈指可數任何想法?
另見本相關[Q&A](http://stackoverflow.com/q/5729306/230513)。 – trashgod