2010-01-18 50 views
4

問題:我在哪裏可以獲得Swing中存在的所有UIDefaults屬性列表?Java Swing:所有UIDefaults屬性列表

我知道可以編寫一小段代碼來提取並顯示它們,但我想知道我以這種方式獲得的列表是否真的完整。 當我這樣做時,我獲得了636個屬性,用於Metal L & F,613用於Windows L & F和550的Motif。網上的另一個來源列出了795個條目,儘管它有一些不正確的附加條目。但也許即使金屬f並沒有設定所有的實際可能。

我很難相信真的不存在來自太陽的可能屬性的正式列表。

+0

只是爲了將來參考[這裏](haukerehfeld.de/misc/UIManagerList.htmlShare) – 2013-03-17 18:01:21

+0

我該鏈路上得到一個404,我很害怕。 – 2013-03-20 07:52:58

+0

haukerehfeld.de/misc/UIManagerList.html < - – 2013-03-21 01:42:43

回答

4

並非所有物業都來自Sun.例如,Mac OS列出了654個屬性+ 51,專用於apple.laf.AquaLookAndFeel。下面是一些代碼,如果別人要提交結果:

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 
1

啊,好,我應該有更深入的想過這個問題之一。

當然的「有效」的屬性列表是直接依賴於是,l- & f和你想用它做什麼:

  1. 寫一個自己的升&˚F 在這種情況下, 「官方列表」是您從繼承的l &獲得的房產列表。在MetalLookAndFeel的情況下,它是636個條目,你可以檢索,我還沒有嘗試過更常見的BasicLookAndFeel和SynthLookAndFeel的數字 - 我猜可以通過放置一個或多或少的空子類來檢查它們並運行上面提供的代碼。

  2. 修改現有升&˚F 在這種情況下運行的代碼爲l &˚F使用產量的一切,可以修改。

到底

因此,該解決方案是不可能有像「官總表」爲這樣的一個東西只能基於一些特定升& F時上部可以說,在這種情況下,代碼會產生人們想知道的。

+0

我還沒有嘗試過,但您可能會喜歡http://code.google.com/p/petersoft-java-style-2/ – trashgod 2010-01-18 15:16:09

1
Linux 2.6.31-19-generic 1.6.0_0 
*** Metal javax.swing.plaf.metal.MetalLookAndFeel 642 entries 
*** CDE/Motif com.sun.java.swing.plaf.motif.MotifLookAndFeel 556 entries 
*** GTK+ com.sun.java.swing.plaf.gtk.GTKLookAndFeel 566 entries