问题:在哪里可以获得Swing中存在的所有UIDefaults属性的列表?
我知道有可能编写一小段代码,只提取并显示它们,但我想知道我得到的列表是否真的完整.
当我这样做时,我获得了金属L& F的636个属性,Windows L& F的613个属性和Motif的550个属性.网上的另一个来源列出了795个条目,尽管它有一些不正确的附加条目.但也许甚至金属l& f也没有设置它实际可能的全部.
我很难相信真的不存在太阳可能属性的官方列表.
解决方法:
并非所有房产都来自Sun.例如,Mac OS列出了特定于apple.laf.AquaLookAndFeel的654个属性51.如果其他人想要提交结果,这里有一些代码:
import javax.swing.UIDefaults;
import javax.swing.UIManager;
public class CountUIDefaults {
public static void main(String[] args) throws Exception {
System.out.println(System.getProperty("os.name")
+ " " + System.getProperty("os.version")
+ " " + System.getProperty("java.version"));
UIManager.LookAndFeelInfo[] lfa =
UIManager.getInstalledLookAndFeels();
for (UIManager.LookAndFeelInfo lf : lfa) {
UIManager.setLookAndFeel(lf.getClassName());
UIDefaults uid = UIManager.getLookAndFeelDefaults();
System.out.println("***"
+ " " + lf.getName()
+ " " + lf.getClassName()
+ " " + uid.size() + " entries");
}
}
}
Mac OS X 10.5.8 1.6.0_17 *** Metal javax.swing.plaf.metal.MetalLookAndFeel 636 entries *** Nimbus com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel 1052 entries *** CDE/Motif com.sun.java.swing.plaf.motif.MotifLookAndFeel 550 entries *** Mac OS X com.apple.laf.AquaLookAndFeel 705 entries