/*dkplus专业搜集和编写实用电脑软件教程,
*搜集各种软件资源和计算机周边,独立制作视频和ppt和音频微信公众号,
*点击进入 dkplus官方博客 (java网络编程http://dkplus.),
*微信搜索dkplus关注公众号可获取海量计算机周边资源。*/
 
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
 
//彩色列表框示例
 
public class JListDemo extends JFrame{
    Container container;  //容器
    JTextField selectedText;  //文本域,反映选择的颜色值
    JList list;  //列表框
    JPanel selectedColor;  //Panel,以选择的颜色为背景绘制
 
   public JListDemo(){  //构造函数
    container=getContentPane();  //得到容器
    container.setLayout(new BorderLayout());  //设置布局管理器,不是必须的,Container默认为BorderLayout
 
    Color[] colors={Color.orange,Color.pink,Color.red,Color.black,Color.blue,Color.cyan,Color.green,Color.lightGray};  //列表框内容
    list=new JList(colors);
        JScrollPane scrollPane = new JScrollPane(list);  //以list初始化滚动窗格
        selectedText=new JTextField(20);
        selectedColor=new JPanel();
        selectedColor.setPreferredSize(new Dimension(20,20));  //设置panel的首选尺寸
        container.add(selectedText,BorderLayout.NORTH);  //增加组件到容器上
    container.add(scrollPane,BorderLayout.CENTER);
    container.add(selectedColor,BorderLayout.SOUTH);
 
      list.setCellRenderer(new ColorRenderer());  //设置Renderer
      list.addListSelectionListener(  //事件处理
        new ListSelectionListener(){
           public void valueChanged(ListSelectionEvent event){  //选择值有改变
            Color c=(Color)list.getSelectedValue();  //得到选择的颜色
              selectedText.setText("选择颜色:"+" R="+c.getRed()+" G ="+c.getGreen()+" B="+c.getBlue());  //设置文本域文本
              selectedColor.setBackground(c);  //设置panel的颜色
           }
      });
 
    setSize(300,200);  //设置窗口尺寸
    setVisible(true);  //设置窗口可视
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  //关闭窗口时退出程序
   }
 
 
   public static void main(String[] args){
      new JListDemo();
   }
}