JColorChooser是一个Swing组件,它提供从其中我们可以选择以RGB格式的色码的调色板。JColorChooser组件分为两部分,颜色选择的选项卡式窗格和预览框。该选项卡包含三个选项卡,可让我们从色标中选择一种颜色,一种HSB(色调,饱和度和亮度)组合以及一种RGB(红色,蓝色,绿色)颜色组合。
package org.nhooo.example.swing; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.*; public class JColorChooserDemo extends JFrame implements ChangeListener { private JColorChooser colorChooser = null; public JColorChooserDemo() throws HeadlessException { initUI(); } private void initUI() { // 设置此JFrame的标题和默认关闭操作。 setTitle("JColorChooser Demo"); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setLayout(new BorderLayout()); // 创建一个JColorChooser组件的实例,并 // 将其添加到框架的内容。 colorChooser = new JColorChooser(); getContentPane().add(colorChooser, BorderLayout.PAGE_END); // 添加更改侦听器以在其中获取所选颜色 // JColorChooser组件。 colorChooser.getSelectionModel().addChangeListener(this); this.pack(); } /** * Handles color selection in the JColorChooser component. * * @param e the ChangeEvent */ public void stateChanged(ChangeEvent e) { // 在JColorChooser组件中获取选定的颜色 // 并将颜色以RGB格式打印到控制台。 Color color = colorChooser.getColor(); System.out.println("color = " + color); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new JColorChooserDemo().setVisible(true); } }); } }
当您在程序上方运行程序时,JColorChooser将显示带有组件的框架。如果从颜色选择中单击一种颜色,则将在控制台中打印RGB格式的颜色字符串。