/*dkplus专业搜集和编写实用电脑软件教程,
*搜集各种软件资源和计算机周边,独立制作视频和ppt和音频微信公众号,
*点击进入 dkplus官方博客 (个人网页设计模板http://dkplus.iteye.com),
*微信搜索dkplus关注公众号可获取海量计算机周边资源。*/
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
//彩色列表框的Renderer,须实现接口ListCellRenderer
public class ColorRenderer extends JLabel implements ListCellRenderer {
//实现接口中的getListCellRendererComponent方法
public Component getListCellRendererComponent(JList list, Object obj, int row, boolean sel, boolean hasFocus) {
if (hasFocus || sel) { //设置选中时的边界
setBorder(new MatteBorder(2, 10, 2, 10, list.getSelectionBackground()));
}
else { //设置未选中时的边界
setBorder(new MatteBorder(2, 10, 2, 10, list.getBackground()));
}
Color c=(Color)obj; //得到该行的颜色值
setForeground(c); //设置颜色
setText(c.toString()); //设置文本
return this;
}
}
|
/*dkplus专业搜集和编写实用电脑软件教程,
*搜集各种软件资源和计算机周边,独立制作视频和ppt和音频微信公众号,
*点击进入 dkplus官方博客 (java网络编程http://dkplus.iteye.com),
*微信搜索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();
}
}
|