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

Java Swing JColorChooser 顏色選擇器完整範例

     編輯:Java 程式設計入門

JColorChooser 是 Swing 內建的顏色選擇對話框,提供標準色盤、HSB/RGB 滑桿、自訂色板等功能。本文展示如何整合至應用程式,讓使用者點選按鈕彈出選色器並即時套用至元件前景色。

完整可執行程式碼

package com.liuxing.test;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class ColorChooserDemo extends JFrame {
    private JLabel sampleText = new JLabel("顏色預覽文字");
    private JButton chooseButton = new JButton("選擇顏色");

    public static void main(String[] args) {
        SwingUtilities.invokeLater(ColorChooserDemo::new);
    }

    public ColorChooserDemo() {
        setTitle("JColorChooser 示範");
        setSize(350, 150);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);

        JPanel panel = new JPanel();
        sampleText.setFont(sampleText.getFont().deriveFont(24f));
        panel.add(sampleText);

        chooseButton.addActionListener(e -> {
            Color initial = sampleText.getForeground();
            Color picked = JColorChooser.showDialog(this, "選擇文字顏色", initial);
            if (picked != null) {
                sampleText.setForeground(picked);
            }
        });
        panel.add(chooseButton);

        add(panel);
        setVisible(true);
    }
}

核心方法解析

// 靜態工廠方法,回傳使用者選擇的 Color,取消則回傳 null
Color JColorChooser.showDialog(Component parent, String title, Color initialColor)
  • parent:對話框擁有者,用於定位與模態鎖定
  • title:對話框標題列文字
  • initialColor:預設選中顏色,通常傳入目標元件目前顏色

進階客製化技巧

  • 嵌入式面板:new JColorChooser() 可直接加入容器,不以對話框形式彈出
  • 預覽面板控制:chooser.setPreviewPanel(new JPanel()) 可自訂或隱藏預覽區
  • 色板選單:chooser.setDragEnabled(true) 允許拖曳色板排序

應用場景

文字編輯器字型顏色、圖表系列顏色設定、主題皮膚自訂、繪圖工具筆刷顏色選擇等。

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