JColorChooser类提供了一个控件窗格,旨在允许用户操作和选择颜色。
类声明
以下是javax.swing.JColorChooser类的声明 -
public class JColorChooser
extends JComponent
implements Accessible
字段
以下是javax.swing.JColorChooser类的字段 -
protected AccessibleContext accessibleContextstatic String CHOOSER_PANELS_PROPERTY-chooserPanel数组属性名称。static String PREVIEW_PANEL_PROPERTY- 预览面板属性名称。static String SELECTION_MODEL_PROPERTY- 选择模型属性名称。
构造函数
| 编号 | 构造函数 | 描述 |
|---|---|---|
| 1 | JColorChooser() |
创建一个颜色选择器窗格,初始颜色为白色。 |
| 2 | JColorChooser(Color initialColor) |
使用指定的初始颜色创建颜色选择器窗格。 |
| 3 | JColorChooser(ColorSelectionModel model) |
使用指定的ColorSelectionModel创建颜色选择器窗格。 |
类方法
| 编号 | 类方法 | 描述 |
|---|---|---|
| 1 | void addChooserPanel(AbstractColorChooserPanel panel) |
为颜色选择器添加颜色选择器面板。 |
| 2 | static JDialog createDialog(Component c, String title, boolean modal, JColorChooser chooserPane, ActionListener okListener, ActionListener cancelListener) |
创建并返回一个包含指定ColorChooser窗格的新对话框以及“确定”,“取消”和“重置”按钮。 |
| 3 | AccessibleContext getAccessibleContext() |
获取与此JColorChooser关联的AccessibleContext。 |
| 4 | AbstractColorChooserPanel[] getChooserPanels() |
返回指定的颜色面板。 |
| 5 | Color getColor() |
从颜色选择器获取当前颜色值。 |
| 6 | boolean getDragEnabled() |
获取dragEnabled属性的值。 |
| 7 | JComponent getPreviewPanel() |
返回显示所选颜色的预览面板。 |
| 8 | ColorSelectionModel getSelectionModel() |
返回处理颜色选择的数据模型。 |
| 9 | ColorChooserUI getUI() |
返回呈现此组件的L&F对象。 |
| 10 | String getUIClassID() |
返回呈现此组件的L&F类的名称。 |
| 11 | protected String paramString() |
返回此JColorChooser的字符串表示形式。 |
| 12 | AbstractColorChooserPanel removeChooserPanel(AbstractColorChooserPanel panel) |
删除指定的颜色面板。 |
| 13 | void setChooserPanels(AbstractColorChooserPanel[] panels) |
指定用于选择颜色值的颜色面板。 |
| 14 | void setColor(Color color) |
将颜色选择器的当前颜色设置为指定的颜色。 |
| 15 | void setColor(int c) |
将颜色选择器的当前颜色设置为指定的颜色。 |
| 16 | void setColor(int r, int g, int b) |
将颜色选择器的当前颜色设置为指定的RGB颜色。 |
| 17 | void setDragEnabled(boolean b) |
设置dragEnabled属性,该属性必须为true才能在此组件上启用自动拖动处理(拖放的第一部分)。 |
| 18 | void setPreviewPanel(JComponent preview) |
设置当前预览面板。 |
| 19 | void setSelectionModel(ColorSelectionModel newModel) |
设置包含所选颜色的模型。 |
| 19 | void setUI(ColorChooserUI ui) |
设置呈现此组件的L&F对象。 |
| 20 | static Color showDialog(Component component, String title, Color initialColor) |
显示模态颜色选择器对话框并阻塞,直到隐藏对话框。 |
| 21 | void updateUI() |
来自UIManager的通知L&F已经改变。 |
方法继承
该类继承以下类中的方法 -
javax.swing.JComponentjava.awt.Containerjava.awt.Componentjava.lang.Object
JColorChooser示例
使用编辑器创建以下Java程序:SwingControlDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JColorChooserExample {
private JFrame mainFrame;
private JLabel headerLabel;
private JLabel statusLabel;
private JPanel controlPanel;
public JColorChooserExample(){
prepareGUI();
}
public static void main(String[] args){
JColorChooserExample swingControlDemo = new JColorChooserExample();
swingControlDemo.showColorChooserDemo();
}
private void prepareGUI(){
mainFrame = new JFrame("Java Swing JColorChooser示例");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout(3, 1));
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.exit(0);
}
});
headerLabel = new JLabel("", JLabel.CENTER);
statusLabel = new JLabel("",JLabel.CENTER);
statusLabel.setSize(350,100);
controlPanel = new JPanel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showColorChooserDemo(){
headerLabel.setText("Control in action: JColorChooser");
JButton chooseButton = new JButton("选择背景颜色");
chooseButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Color backgroundColor = JColorChooser.showDialog(mainFrame,
"选择背景颜色", Color.white);
if(backgroundColor != null){
controlPanel.setBackground(backgroundColor);
mainFrame.getContentPane().setBackground(backgroundColor);
}
}
});
controlPanel.add(chooseButton);
mainFrame.setVisible(true);
}
}
执行上面示例代码,得到以下结果:

