Lớp JColorChooser trong Java Swing

Lớp JColorChooser cung cấp một pane cho các control được thiết kế để cho phép người dùng thao tác và lựa chọn một màu. Cú pháp khai báo cho lớp javax.swing.JColorChooser là:

public class JColorChooser
   extends JComponent
      implements Accessible

Lớp này kế thừa các phương thức từ các lớp sau:

  • javax.swing.JComponent
  • java.awt.Container
  • java.awt.Component
  • java.lang.Object

Lớp JColorChooser này có các trường sau:

  • protected AccessibleContext accessibleContext
  • static String CHOOSER_PANELS_PROPERTY − là tên thuộc tính của mảng chooserPanel.
  • static String PREVIEW_PANEL_PROPERTY − là tên thuộc tính preview panel.
  • static String SELECTION_MODEL_PROPERTY − là tên thuộc tính selection model.

Lớp JColorChooser có 3 constructor sau:

1. JColorChooser(): Tạo một bảng chọn màu với một màu ban đầu là màu trắng.

2. JColorChooser(Color initialColor): Tạo một bảng chọn màu với màu khởi tạo đã cho.

3. JColorChooser(ColorSelectionModel model): Tạo một bảng chọn màu với ColorSelectionModel đã cho.

Một số phương thức được sử dụng phổ biến của lớp JColorChooser

STTPhương thức & Miêu tả
1void addChooserPanel(AbstractColorChooserPanel panel)

Thêm một bảng chọn màu tới ColorChooser

2static JDialog createDialog(Component c, String title, boolean modal, JColorChooser chooserPane, ActionListener okListener, ActionListener cancelListener)

Tạo và trả về một hộp thoại dialog chứa bảng ColorChooser cùng với các nút "OK", "Cancel", và "Reset"

3AbstractColorChooserPanel removeChooserPanel(AbstractColorChooserPanel panel)

Xóa Color Panel đã cho

4void setChooserPanels(AbstractColorChooserPanel[] panels)

Xác định Color Panels được sử dụng để chọn một giá trị màu

5void setColor(Color color)

Thiết lập màu hiện tại của Color Chooser tới màu đã cho

6void setColor(int c)

Thiết lập màu hiện tại của Color Chooser tới màu đã cho

7void setColor(int r, int g, int b)

Thiết lập màu hiện tại của Color Chooser tới màu RBG đã cho

8void setDragEnabled(boolean b)

Thiết lập thuộc tính dragEnabled, mà phải là true để kích hoạt bộ xử lý hoạt động drag tự động (phần đầu tiên của hoạt động drag và drop) trên thành phần này

9void setPreviewPanel(JComponent preview)

Thiết lập Prview Panel hiện tại

10void setSelectionModel(ColorSelectionModel newModel)

Thiết lập Model chứa màu đã chọn

11void setUI(ColorChooserUI ui)

Thiết lập đối tượng L&F mà truyền đối tượng này

12static Color showDialog(Component component, String title, Color initialColor)

Hiển thị một hộp thoại dialog

13void updateUI()

Thông báo từ UIManager rằng L&F đã thay đổi

Chương trình ví dụ về lớp JColorChooser

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


public class JColorChooserExample extends JFrame implements ActionListener{  
JButton b;  
Container c;  


JColorChooserExample(){  
    c=getContentPane();  
    c.setLayout(new FlowLayout());  


    b=new JButton("color");  
    b.addActionListener(this);  


    c.add(b);  
}  


public void actionPerformed(ActionEvent e) {  
Color initialcolor=Color.RED;  
Color color=JColorChooser.showDialog(this,"Select a color",initialcolor);  
c.setBackground(color);  
}  


public static void main(String[] args) {  
    JColorChooserExample ch=new JColorChooserExample();  
    ch.setSize(400,400);  
    ch.setVisible(true);  
    ch.setDefaultCloseOperation(EXIT_ON_CLOSE);  
}  
}  

Chương trình ví dụ khác về lớp JColorChooser

SwingControlDemo.java

package com.hoclaptrinh.gui;


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


public class SwingControlDemo {


   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;


   public SwingControlDemo(){
      prepareGUI();
   }


   public static void main(String[] args){
      SwingControlDemo  swingControlDemo = new SwingControlDemo();      
      swingControlDemo.showColorChooserDemo();
   }


   private void prepareGUI(){
      mainFrame = new JFrame("Vi du Java Swing");
      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("Choose Background");        
      chooseButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            Color backgroundColor = JColorChooser.showDialog(mainFrame,
               "Choose background color", Color.white);
            if(backgroundColor != null){
               controlPanel.setBackground(backgroundColor);
               mainFrame.getContentPane().setBackground(backgroundColor);
            }
         }
      });


      controlPanel.add(chooseButton);
      mainFrame.setVisible(true);  
   }
}


Bình luận