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.

Quảng cáo

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

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

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

2 static 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"

3 AbstractColorChooserPanel removeChooserPanel(AbstractColorChooserPanel panel)

Xóa Color Panel đã cho

4 void setChooserPanels(AbstractColorChooserPanel[] panels)

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

5 void setColor(Color color)

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

6 void setColor(int c)

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

7 void 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

8 void 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

9 void setPreviewPanel(JComponent preview)

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

10 void setSelectionModel(ColorSelectionModel newModel)

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

11 void setUI(ColorChooserUI ui)

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

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

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

13 void updateUI()

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

Quảng cáo

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.vietjack.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);  
   }
}

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập doanh nghiệp với Java. Khóa học có giá chỉ 400K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp chị Thu, trợ lý anh Tuyền để hỗ trợ thanh toán qua mã QR ngân hàng Việt Nam, fb: https://www.facebook.com/Thule.59

Anh Tuyền, tác giả khóa học, là cựu sinh viên chương trình đào tạo kĩ sư tài năng của đại học Bách Khoa Hà Nội với hơn 5 năm kinh nghiệm đi làm thực tế doanh nghiệp và cũng là Founder website vietjack.com, web giáo dục phổ biến nhất Việt Nam hiện tại (năm 2024). Java cũng là ngôn ngữ lập trình dễ đi xin việc nhất hiện tại, với mức lương cao, hãy nâng cao kiến thức IT của bản thân mình vì một Việt Nam giàu mạnh.

Loạt bài hướng dẫn của chúng tôi dựa một phần trên nguồn tài liệu của: Tutorialspoint.com


swing_control_trong_java_swing.jsp


Tài liệu giáo viên