Swing JList渲染器--DefaultListCellRenderer的使用
来源:互联网 发布:js提交复杂表单 编辑:程序博客网 时间:2024/05/21 13:22
效果如图:
package test;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListCellRenderer;
@SuppressWarnings("serial")
public class CellRenderer extends DefaultListCellRenderer{
JPanel newPanel = new JPanel();
String[] s = {"美国","日本","大陆","英国","法国","意大利","澳洲","韩国"};
String valueIndex="1,3,5";
public Component createComponent() {
JList list = new JList(s);
JScrollPane jScrollPane = new JScrollPane(list);
jScrollPane.setPreferredSize(new Dimension(150, 230)); //设置滚动list的宽度以及高度(宽150,高230)
//加载样式
list.setCellRenderer((ListCellRenderer) getListCellRendererComponent(list, "", 0, true, true));
//加载选择文件框
newPanel.add(jScrollPane);
return newPanel;
}
//JLst渲染器
//list - 正在绘制的 JList,value - 由 list.getModel().getElementAt(index) 返回的值,index - 单元格索引。isSelected - 如果选择了指定的单元格,则为 true。cellHasFocus - 如果指定的单元格拥有焦点,则为 true。
public Component getListCellRendererComponent(javax.swing.JList list,
Object value, int index, boolean isSelected, boolean cellHasFocus) {
setText(value.toString());
Color background = null;
Color foreground = null;
if(valueIndex!=null){
String[] _valueIndex = valueIndex.split(",");
for(int i=0;i<_valueIndex.length;i++){
if((index+"").equals(_valueIndex[i])){
background = Color.RED;
foreground = Color.WHITE;
}
}
}
if(isSelected){
background = Color.BLUE;
foreground = new Color(0, 255, 0);
}
setBackground(background);
setForeground(foreground);
return this;
}
public static void main(String[] args) {
CellRenderer test = new CellRenderer();
Component contents = test.createComponent();
JFrame frame = new JFrame("CellRenderer");
frame.setCursor(new Cursor(12));
frame.setBounds(0, 0,300, 300);
frame.setResizable(false); // 禁止最大化,禁止拖拉窗口大小
// frame.pack();
// 设置窗体启动位置
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.getContentPane().add(contents, BorderLayout.CENTER);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
0 0
- Swing JList渲染器--DefaultListCellRenderer的使用
- Swing之JList的使用
- Swing之JList的使用
- Swing之JList的使用
- Swing JList使用
- java Swing中对于JList控件的使用(一)
- java swing中对于JList的使用(二)
- java swing中对于JList的使用(三)
- [Java GUI] Swing中JList和JRadioButton的联合使用
- swing JList JScrollPane使用时不显示数据的问题 JList设置可多选
- swing JList JScrollPane使用时不显示数据的问题 JList设置可多选
- Swing 有关JList的问题
- swing 中的JList的增加和删除
- Swing中JList的相关问题(2)
- JList的使用
- JList的使用实例
- JList控件的使用
- Swing自定义JList
- hibernate配置文件hibernate.cfg.xml的详细解释
- struts2中struts.xml文件配置简单讲解
- 1.类之间的关系
- 汇编操作符
- “DEBUG”汇编指令
- Swing JList渲染器--DefaultListCellRenderer的使用
- Java中的equels和==比较
- android插件化-apkplugdemo源码阅读指南-10
- hibernate3使用注解,spring配置文件applicationContext.xml的配置
- 第3天 失眠的开始0.0
- 通过静态编译(VS2010)解决发布qt4 release 版本时无图片问题
- SNMPv3基于用户的安全模型USM(2)
- 数据存储——堆和栈
- linux yum命令详解