如题

解决方案 »

  1.   

    要学LookAndFeel的话,实际上只要学两个类就可以了啊,一个UIManager,一个SwingUtilities
      

  2.   

    定义UI的属性,标记UI创建时的对象代理
      

  3.   

    UIResource并无什么特别的作用,只是在自定义LookAndFeel时
    用来区分UI资源和普通资源的一个标记。这是ComponentUI安装或卸载时
    用来判断组件的某些属性值是否已经被重写(重设).
    下面这段是冲API上复制的,你自己理解下:此接口用于标记由 ComponentUI 委托创建的对象。ComponentUI.installUI() 和 ComponentUI.uninstallUI() 方法可以使用此接口确定属性值是否已经被重写。例如,JList cellRenderer 属性只在其初始值为 null 时由 BasicListUI.installUI() 初始化: if (list.getCellRenderer() == null) {
         list.setCellRenderer((ListCellRenderer)(UIManager.get("List.cellRenderer")));
     }
     在执行 uninstallUI() 时,如果该属性的值是 UIResource 的一个实例,则将该属性重置为 null: if (list.getCellRenderer() instanceof UIResource) {
         list.setCellRenderer(null);
     }此模式应用于除 java.awt.Component 属性 font、foreground 和 background 之外的所有属性。如果这些属性中有一个未被初始化,或者被显式设置为 null,则其容器将提供该值。因此,在调用 installUI() 来动态更新组件外观时,"== null" 是不可靠的。因此,在执行 installUI() 时,要检查当前值是否是一个 UIResource: if (!(list.getFont() instanceof UIResource)) {
         list.setFont(UIManager.getFont("List.font"));
     }
     
      

  4.   

    是gui开出来的 外观和字体。