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);
}
}
執行上面示例代碼,得到以下結果:

