首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 系統顏色:獲取與應用桌面顏色常數

     編輯:Java 相關知識

前言

在開發跨平台的 Java 桌面應用時,為了讓介面風格與原生系統保持一致,Java 提供了 java.awt.SystemColor 類。它封裝了系統當前的桌面顏色設定,開發者可直接讀取這些靜態常數,無需手動初始化。

核心機制

SystemColor 的所有顏色值會在類載入時自動初始化,並作為 static 成員暴露。開發者只需直接讀取感興趣的成員即可,例如:

Color background = SystemColor.window;        // 視窗背景色
Color textColor = SystemColor.windowText;     // 視窗文字色
Color highlight = SystemColor.textHighlight;  // 文字選取高亮色

常用系統顏色常數對照表

常數名稱用途說明
desktop桌面背景色
activeCaption活動視窗標題欄背景
activeCaptionText活動視窗標題文字色
activeCaptionBorder活動視窗標題邊框色
inactiveCaption非活動視窗標題欄背景
inactiveCaptionText非活動視窗標題文字色
inactiveCaptionBorder非活動視窗標題邊框色
window視窗內部背景色
windowBorder視窗邊框色
windowText視窗內部文字色
menu選單背景色
menuText選單文字色
text文字編輯區背景色
textText文字編輯區文字色
textHighlight文字選取高亮背景
textHighlightText文字選取高亮文字色
textInactiveText非活動文字色
control控制元件背景色(按鈕等)
controlText控制元件文字色
controlHighlight控制元件高亮色
controlLtHighlight控制元件淡高亮色
controlShadow控制元件陰影色
controlDkShadow控制元件深陰影色
scrollbar捲軸背景色
info工具提示/說明背景色
infoText工具提示/說明文字色

實際應用範例

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

public class SystemColorDemo {
    public static void main(String[] args) {
        JFrame frame = new JFrame("SystemColor Demo");
        frame.setLayout(new GridLayout(0, 2));
        
        // 列出所有系統顏色
        for (Field f : SystemColor.class.getDeclaredFields()) {
            if (f.getType() == Color.class) {
                try {
                    Color c = (Color) f.get(null);
                    JLabel nameLabel = new JLabel(f.getName());
                    JLabel colorLabel = new JLabel("        ");
                    colorLabel.setOpaque(true);
                    colorLabel.setBackground(c);
                    colorLabel.setBorder(BorderFactory.createLineBorder(Color.GRAY));
                    frame.add(nameLabel);
                    frame.add(colorLabel);
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }
            }
        }
        frame.pack();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

注意事項

  • 跨平台差異:不同作業系統(Windows、macOS、Linux)的預設色值不同,甚至同一系統不同主題下也會變化。
  • 不可修改:SystemColor 常數為 final static,僅供讀取,不可賦值。
  • 動態更新:若使用者在執行期間更換系統主題,Java 可能不會即時反映新色值,視 JVM 實作而定。

總結

善用 SystemColor 可讓 Java 應用自動適應使用者的系統外觀設定,提升原生體驗。開發時只需記住核心常數名稱(window, control, text 等),即可輕鬆套用系統色系。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved