java提供了一个用于允许用户操作和选择颜色的控制器窗格JColorChooser,今天我们就看一下这个JColorChooser的用法,实现如下效果:

用户点击界面:

选色板界面:

需要说明的是,这个选色板窗体完全是由系统提供,也就是我们今天要学习的这个JColorChooser。该选色板界面有样品、HSB、RGB三个选项卡,能使用三种方式来选择颜色。

---------------------------------------------------------------------------------------

step1:

任务描述:搭建界面窗口框架

编辑类:TestJColorChooser.class

 
  
  1. package test; 
  2.  
  3. import javax.swing.JFrame; 
  4.  
  5. public class TestJColorChooser extends JFrame { 
  6.     public TestJColorChooser() { 
  7.  
  8.         // 设置窗口标题 
  9.         setTitle("调色板"); 
  10.         // 设置窗口位置和大小 
  11.         setBounds(200200400300); 
  12.         // 设置窗口为可视 
  13.         setVisible(true); 
  14.         // 关闭窗口时退出程序 
  15.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
  16.     } 
  17.  
  18.     public static void main(String[] args) { 
  19.         new TestJColorChooser(); 
  20.     } 

---------------------------------------------------------------------------------------

step2:

任务描述:完成用户界面。

任务分析:该界面采用Borderlayout,上面是一个按钮JButton,下面是一个面板JPanel

编辑类:TestJColorChooser.class

 
  
  1. package test; 
  2.  
  3. import java.awt.BorderLayout; 
  4. import java.awt.Color; 
  5.  
  6. import javax.swing.JButton; 
  7. import javax.swing.JFrame; 
  8. import javax.swing.JPanel; 
  9.  
  10. public class TestJColorChooser extends JFrame { 
  11.     public TestJColorChooser() { 
  12.         // 创建基础面板作为窗口的内容面板contentPane; 
  13.         JPanel pnBasic = new JPanel(); 
  14.         // 为基础面板加入布局方式 
  15.         pnBasic.setLayout(new BorderLayout()); 
  16.         // 创建一个按钮 
  17.         JButton btnSelectColor = new JButton("选取颜色"); 
  18.         // 把按钮添加到基础面板的北部 
  19.         pnBasic.add(btnSelectColor, BorderLayout.NORTH); 
  20.         // 创建一个子面板 
  21.         JPanel pnShowColor = new JPanel(); 
  22.         // 设置子面板的背景色为白色 
  23.         pnShowColor.setColor.WHITE);
  24.         // 将子面板添加到基础面板中 
  25.         pnBasic.add(pnShowColor, BorderLayout.CENTER); 
  26.         // 将基础面板和窗口绑定。 
  27.         setContentPane(pnBasic); 
  28.         // 设置窗口标题 
  29.         setTitle("调色板"); 
  30.         // 设置窗口位置和大小 
  31.         setBounds(200200400300); 
  32.         // 设置窗口为可视 
  33.         setVisible(true); 
  34.         // 关闭窗口时退出程序 
  35.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
  36.     } 
  37.  
  38.     public static void main(String[] args) { 
  39.         new TestJColorChooser(); 
  40.     } 

 运行效果:

---------------------------------------------------------------------------------------

step3:

任务描述:为"选取颜色"按钮添加监听,使点击按钮弹出选色板界面。

任务分析:JColorChooser.showDialog(TestJColorChooser.this,"选色板", Color.WHITE);用于显示调色板。

参数说明:

        component - 对话框的父 Component

        title - 包含对话框标题的 String

        initialColor - 显示颜色选取器时的初始 Color 设置 

编辑类:TestJColorChooser.class

 
  
  1. package test; 
  2.  
  3. import java.awt.BorderLayout; 
  4. import java.awt.Color; 
  5. import java.awt.event.ActionEvent; 
  6. import java.awt.event.ActionListener; 
  7.  
  8. import javax.swing.JButton; 
  9. import javax.swing.JColorChooser; 
  10. import javax.swing.JFrame; 
  11. import javax.swing.JPanel; 
  12.  
  13. public class TestJColorChooser extends JFrame { 
  14.     /** 用于显示所选颜色的子面板 **/ 
  15.     private JPanel pnShowColor; 
  16.  
  17.     public TestJColorChooser() { 
  18.         // 创建基础面板作为窗口的内容面板contentPane; 
  19.         JPanel pnBasic = new JPanel(); 
  20.         // 为基础面板加入布局方式 
  21.         pnBasic.setLayout(new BorderLayout()); 
  22.         // 创建一个按钮 
  23.         JButton btnSelectColor = new JButton("选取颜色"); 
  24.         // 把按钮添加到基础面板的北部 
  25.         pnBasic.add(btnSelectColor, BorderLayout.NORTH); 
  26.         // 创建一个子面板 
  27.         pnShowColor = new JPanel(); 
  28.         // 设置子面板的背景色为白色 
  29.         pnShowColor.setColor.WHITE);
  30.         // 将子面板添加到基础面板中 
  31.         pnBasic.add(pnShowColor, BorderLayout.CENTER); 
  32.         // 为按钮添加监听 
  33.         btnSelectColor.addActionListener(new ActionListener() { 
  34.  
  35.             @Override 
  36.             public void actionPerformed(ActionEvent e) { 
  37.                 // 得到选择的颜色 
  38.                 Color color = JColorChooser.showDialog(TestJColorChooser.this
  39.                         "选色板", Color.WHITE); 
  40.                 // 设置子面板的背景色 
  41.                 pnShowColor.setcolor);
  42.             } 
  43.         }); 
  44.         // 将基础面板和窗口绑定。 
  45.         setContentPane(pnBasic); 
  46.         // 设置窗口标题 
  47.         setTitle("调色板"); 
  48.         // 设置窗口位置和大小 
  49.         setBounds(200200400300); 
  50.         // 设置窗口为可视 
  51.         setVisible(true); 
  52.         // 关闭窗口时退出程序 
  53.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
  54.     } 
  55.  
  56.     public static void main(String[] args) { 
  57.         new TestJColorChooser(); 
  58.     } 

运行效果:

---------------------------------------------------------------------------------------

这样我们就完成了选色板JColorChooser的调用,赶紧把它用在自己的项目中吧。