🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.lang.java
Article #418

Swing��UIManager.getColorӦ��

#418
From: cffile
Date: Wed, 17 Dec 2008 07:18
76 lines
4102 bytes
UIManager.getColor(Object key) ��ʹ��

   ������������ı任��ʱ�����Ǿ���Ҫ��ϵͳ��һЩ��ɫ����Ĭ��
���ã�����������任ʱ���������ɫ�Զ�ת������������Ӧ����ɫ
��һ��Ч��UIManager���ⷽ����һ�ֺܹؼ��Ӧ�á�
   ��UIManager(Java 2 Platform SE v1.4.2)���
public static Color getColor(Object key)ע���У�key��һ��ָ��
��ɫ�Ķ��󣬶���������Щ����ʹ���򲻵�֪��
    �����Ķ�jdk��Դ�������֪��������UIManager.getColor ��ʱ��
����ʵ��ͨ������[return getDefaults().getColor(key); ]���
��������ɫ�ġ���getDefaults() ������һ��UIDefaults����
����UIDefaults������ͨ��[Object value = get(key);]�����
��ɫ�Ķ���ͨ������õ���Ͳ�Ĵ��룬����֪������Щ�����б�
�DZ�����һ��Hashtable��UIDefaults�̳��� Hashtable���еģ���
Hashtable�ṩ��һ���ӿ�[public synchronized Enumeration keys()]
�������Щֵ��
    ��ˣ����ǿ���ͨ��һ�μ򵥵Ĵ�������ÿ���ʹ�õ���ɫ��
�ؼ����

import java.awt.*;
import java.util.*;
import javax.swing.*;

public class UIManagerColorTest {
  public UIManagerColorTest() {
  }

  public static void main(String[] args) {

    UIDefaults uiDefaults = UIManager.getDefaults();
    Enumeration enum = uiDefaults.keys();
    while (enum.hasMoreElements()) {
      Object key = enum.nextElement();
      Object val = uiDefaults.get(key);
 
      //�������ɫ�������ӡ
      try {
        Color color = (Color) val;
        System.out.println("[" + key.toString() + "]");
      }
      catch (ClassCastException cce) {
      }
    }

  }
}
���������г����Ľ��
[DesktopIcon.background]
[windowText]
[activeCaptionBorder]
....

Ӧ�ã�
ListCellRenderer  


public class SAListCellRenderer extends JLabel implements ListCellRenderer {
        private static final Border SELECTED_BORDER=BorderFactory.createLineBorder(UIManager.getColor("List.selectionBackground"));
        private static final Border UNSELECTED_BORDER=BorderFactory.createLineBorder(UIManager.getColor("List.background"));
        
        
    public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
                
                if(cellHasFocus)
                {//��ѡ��ʱ����ʾSELECTED_BORDER
                        this.setBorder(SELECTED_BORDER);
                }
                else 
                {//δ��ѡ��ʱ����ʾUNSELECTED_BORDER
                        this.setBorder(UNSELECTED_BORDER);
                }
        }
}

--
�� ��Դ:�������ʵBBS bbs.tju.edu.cn��[FROM: 202.113.13.188]
Technical Details
Message-ID: <4dTKK3$ASN@bbs.tju.edu.cn>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!feeder3.cambrium.nl!feeder4.cambrium.nl!feed.tweaknews.nl!193.141.40.65.MISMATCH!npeer.de.kpn-eurorings.net!npeer-ng1.de.kpn-eurorings.net!news-out1.kabelfoon.nl!newsfeed.kabelfoon.nl!xindi.nntp.kabelfoon.nl!news.isoc.lu!news.shec6.edu.cn!news.byr.edu.cn!TJU

Show Full Headers
Complete Article Headers
X-Google-Thread: f6cb0,701efa7bd4e05018,start
X-Google-Attributes: gidf6cb0,domainid0,public,usenet
X-Google-Language: Chinese,GB
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!feeder3.cambrium.nl!feeder4.cambrium.nl!feed.tweaknews.nl!193.141.40.65.MISMATCH!npeer.de.kpn-eurorings.net!npeer-ng1.de.kpn-eurorings.net!news-out1.kabelfoon.nl!newsfeed.kabelfoon.nl!xindi.nntp.kabelfoon.nl!news.isoc.lu!news.shec6.edu.cn!news.byr.edu.cn!TJU
From: cffile.bbs@bbs.tju.edu.cn.no.spam (cffile)
Newsgroups: cn.bbs.comp.lang.java
Subject: Swing��UIManager.getColorӦ��
Date: 17 Dec 2008 07:18:27 GMT
Organization: �����ʵBBSվ
Message-ID: <4dTKK3$ASN@bbs.tju.edu.cn>
Mime-Version: 1.0
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: 8bit
X-Filename: Java/M.1229498307.A