Lớp JColorChooser trong Java Swing 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
Nội dung chính
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
STT | Phương thức & Mô 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
JColorChooserExam1.javapackage vn.viettuts.swing; import java.awt.Color; import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JColorChooser; import javax.swing.JFrame; public class JColorChooserExam1 extends JFrame implements ActionListener { JButton b; Container c; JColorChooserExam1() { 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) { JColorChooserExam1 ch = new JColorChooserExam1(); ch.setSize(400, 200); ch.setVisible(true); ch.setTitle("Vi du JColorChooser trong Java Swing"); ch.setDefaultCloseOperation(EXIT_ON_CLOSE); } }
Chạy chương trình Java trên cho kết quả như sau:
Chương trình ví dụ khác về lớp JColorChooser
JColorChooserExam2.javapackage vn.viettuts.swing; import java.awt.Color; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton; import javax.swing.JColorChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class JColorChooserExam2 { private JFrame mainFrame; private JLabel headerLabel; private JLabel statusLabel; private JPanel controlPanel; public JColorChooserExam2() { prepareGUI(); } public static void main(String[] args) { JColorChooserExam2 swingControlDemo = new JColorChooserExam2(); swingControlDemo.showColorChooserDemo(); } private void prepareGUI() { mainFrame = new JFrame("Vi du Java Swing"); mainFrame.setSize(400, 300); 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.setTitle("Vi du JColorChooser trong Java Swing"); mainFrame.setVisible(true); } }
Chạy chương trình Java trên cho kết quả như sau: