通过实现接口ListCellRenderer自定义JList的显示模式
来源:互联网 发布:python图形界面开发 编辑:程序博客网 时间:2024/06/03 17:19
我由.net转过来的,在.net中的控件ListView显示方式有三种,可以很简单的显示图标和文字,使用起来很方便,效果也不错。
转到java后,JAVA里的JList和.net里的ListView有很大不同,感觉用起来真的不方便。经过几天的研究,最后总算是把效果做出来了。效果如下图
如上图,在JList中显示图片,图片下面显示文字,文字居中显示。
为了实现上面的效果,我写了一个继承JLabel并实现了ListCellRenderer接口类,上代码如下
public class CellRenderer extends JLabel implements ListCellRenderer { /*从这里到结束:实作getListCellRendererComponent()方法*/ @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { String uri = "file:/fake.svg"; CellInfo ci = (CellInfo) value; setHorizontalAlignment(JLabel.CENTER); try { Icon icon = new ImageIcon(ci.bi); this.setIcon(icon); this.setText(ci.iconName); } catch (Exception e) { this.setIcon(null); this.setText(String.valueOf(index)); } return this; }}
上面的CellInfo类只有两上字段,图片 bi,和文本iconName。在JList中要设置setCellRenderer为上面的类实例
cellRenderer = new CellRenderer(color, 50); list.setCellRenderer(cellRenderer);接下来只要在代码里用setModel将数据添加到JList里就可以了
private void resetList() { for (int i = 0; i < oSizes.size(); i++) { dlm.addElement(new CellInfo(img, str)); } list.setModel(dlm); } }
还有一些设置在JList里设置就可以了,比如每一项的尺寸,间距等。这里就不再详讲了。
上面的代码可以在我的一个开源项目中找到,详细可以看这里 APP图标神器
APP图标神器是使用网阿里图标库或使用一个SVG字体图标库来生成APP图标的应用。可以分类生成安卓各种分辨率的图标。
程序写的有些粗糙,还凑和能用,希望你能喜欢。
1 0
- 通过实现接口ListCellRenderer自定义JList的显示模式
- 通过实现ListCellRenderer接口,实现CheckBox的列表
- 自定义jlist item的简单实现
- JList 双击事件的实现
- 通过Tag接口实现自定义标签
- 接口的显示实现
- 接口的显示实现
- 显示接口的实现
- JList的拖拽排序实现
- swing JList JScrollPane使用时不显示数据的问题 JList设置可多选
- swing JList JScrollPane使用时不显示数据的问题 JList设置可多选
- Swing自定义JList
- 定制JList显示
- 通过自定义的类来实现事件监听器接口的示例
- 通过实现HandlerMethodArgumentResolver接口,给springMvc的Controller的方法注入自定义参数
- 接口成员的显示实现
- VC++ 通过IHTMLINTEFACE 接口实现网页执行自定义js代码
- java中通过接口实现自定义事件,动态设定行为
- Ajax_jquery_struts_json组合开发实例
- Mac xampp 安装redis + PHPredis
- windows下使用C++操作MySQL数据库
- 第三天打字
- Anaconda 的启动参数
- 通过实现接口ListCellRenderer自定义JList的显示模式
- JAVA 基本类型数组的初始化(原理篇)
- 第131课: Spark Streaming源码经典解读系列之六:ReceiverTracker工作内幕源码解密
- QT编译./configure参数的详细解释
- nyoj20 吝啬的国度(dfs+vector)
- Linux kernel -TCP/IP 源码 欣赏 <一> --套接口缓存
- extern "C"的用法解析
- [JZOJ3341]寺庙逃脱
- android webview 电脑网页适应手机屏幕