14/08/2018, 10:47

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ừ ...

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:

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

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

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

0