LWUIT的List应用系列(一)List基础
在使用LWUIT框架时,如果要显示很多数据,我们首先想到的就是使用List组件。我在使用List组件时,遇到过很多问题,这些问题都相继解决了,我把我遇到的问题以及解决办法写出来,共享给使用LWUIT框架的同胞们。
在使用List之前,我们首先要了解List。List采用MVC模式来处理数据层(Model)和视图层(View),关于MVC的简要介绍如下图:
1、如果Form中有很多Component,其中有一个List,当未选中List时,默认情况下List的第一项是选中的效果(注意:List并没有获得焦点)。
解决办法:
PersonList personList = new PersonList(); //从英文单词中就知道这个方法的意思了 personList.setIgnoreFocusComponentWhenUnfocused(true);
2、List的常用写法
既然List采用的是MVC模式,那我们就以MVC模式的形式来使用List。视图层(View)就不用说了,就是List本身,现在我们需要为List提供Model和Controller,我定义了一个createList(Object[] objArr, int orientation, ListCellRenderer) 方法用于创建List
参数说明:
objArr Model
orientation List的显示方向
ListCellRenerer Controller
我们可以把这个方法理解为通过Model和Controller创建View层。
以下就是我应用到的一个实例代码:
/** * Model */ public class Person { private String name; private Image photo; public Person(String name, Image photo) { this.name = name; this.photo = photo; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Image getPhoto() { return photo; } public void setPhoto(Image photo) { this.photo = photo; } } /** * View */ public List createList(Person[] persons, int orientation, ListCellRenderer renderer) { List list = new List(persons); list.setListCellRenderer(renderer); list.setOrientation(orientation); return list; } /** * Controller */ class Renderer extends Container implements ListCellRenderer { public Label name = new Label(""); public Label pic = new Label(""); public Label focus = new Label(""); public Container cnt = new Container(new BoxLayout(BoxLayout.Y_AXIS)); public Renderer() { setLayout(new BorderLayout()); addComponent(BorderLayout.WEST, pic); name.getStyle().setBgTransparency(0); cnt.addComponent(name); addComponent(BorderLayout.CENTER, cnt); //focus用于设置List选中时的效果,这里设置List的选中项具有绿色的边框 focus.getStyle().setBorder(Border.createLineBorder(1, 0x00ff00)); } public Component getListCellRendererComponent(List list, Object value, int index, boolean isSelected) { Person person = (Person) value; name.setText(person.getName()); pic.setIcon(person.getPhoto()); return this; } public Component getListFocusComponent(List list) { return focus; } }
下一篇我将对List的事件运用做相关的说明。
LWUIT的List应用系列(一)List基础相关推荐
- Webpack系列-第一篇基础杂记
系列文章 Webpack系列-第一篇基础杂记 Webpack系列-第二篇插件机制杂记 Webpack系列-第三篇流程杂记 前言 公司的前端项目基本都是用Webpack来做工程化的,而Webpack虽然 ...
- iOS动画系列之五:基础动画之缩放篇旋转篇Swift+OC
这一篇主要介绍基础动画之缩放和旋转.这些基本操作分享完之后,我想想可以找个稍微复杂一点点的动画做做啦. 这篇继续基础篇,分享一下缩放和旋转.因为整体思路和平移基本上没有变化,加上源代码里面也有OC版本 ...
- linux基础试卷笔试,顽石系列:Linux基础笔试
顽石系列:Linux基础笔试 系统操作 压缩文件 扩展名压缩程序 *.Z compress *.zip zip *.gz gzip *.bz2 bzip2 *.xz xz *.tar tar 程序打包 ...
- 深度学习与计算机视觉系列(1)_基础介绍
转载自: 深度学习与计算机视觉系列(1)_基础介绍 - 龙心尘 - 博客频道 - CSDN.NET http://blog.csdn.net/longxinchen_ml/article/detail ...
- jQuery小测试系列之jQuery基础知识
日期:2012-4-17 来源:GBin1.com 这是jQuery小测试系列第一部分:基础知识. 来源:jQuery小测试系列之jQuery基础知识
- [系统安全] 四十六.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...
- Java面试题系列之Java基础类库(一)
Java程序员面试题大全系列之Java基础类库(一) ...
- 手摸手,带你用vue撸后台 系列一(基础篇) - 掘金
完整项目地址:vue-element-admin 系列文章: 手摸手,带你用 vue 撸后台 系列一(基础篇) 手摸手,带你用 vue 撸后台 系列二(登录权限篇) 手摸手,带你用 vue 撸后台 系 ...
- .NET 并行(多核)编程系列之六 Task基础部分完结篇
.NET 并行(多核)编程系列之六 Task基础部分完结篇 前言:之前的文章介绍了了并行编程的一些基本的,也注重的讲述了Task的一些使用方法,本篇很短,将会结束Task的基础知识的介绍. 本篇的主要 ...
- SQL Server 2008空间数据应用系列四:基础空间对象与函数应用
SQL Server 2008空间数据应用系列四:基础空间对象与函数应用 原文:SQL Server 2008空间数据应用系列四:基础空间对象与函数应用 友情提示,您阅读本篇博文的先决条件如下: 1. ...
最新文章
- 哪些软件问题也可导致硬盘录像机死机
- 可穿戴计算之父:成都能成为可穿戴技术未来中心
- Leetcode232使用栈实现队列
- 在Xcode6中添加prefix.pch文件
- 如何躲开技术人员35岁魔咒?【有惊喜系列】
- React Native 交互管理器InteractionManager
- Xamarin.Android 引导页
- SQL Server存储过程的使用
- python2.7 安装第三方库
- rms 公式 有效值_有效值、真有效值、基波有效值、全有效值概念辨析
- Word2016目录自动生成+页码从目录页后面显示
- 小程序转uniapp——disabled
- 几款好用证件照制作工具推荐
- 科学计算基础软件包NumPy入门讲座(5):常用函数
- 如何在jupyter中执行带参数的py文件
- PointGet的一生
- 祝各位SAPER元旦快乐!
- FlatList ListHeaderComponent 频繁刷新
- Oracle v$sql 视图详解
- 如何在线将XPS转换成PDF?
热门文章
- UltraISO 软碟通制作系统U盘
- 为windows 驱动程序签名
- Redis实现分布式限流(学习笔记
- 关于 迪奥 中国官网 dior.cn 的真假性判断 ~
- failure: repodata/repomd.xml from docker-main-repo: [Errno 256] No more mirrors to try.
- 行式数据库评测:Oracle 11g R2企业版
- 从事软件测试需要学自动化么
- ps中图层放到顶层的快捷键是什么?
- KDYD-JC自动高压漆膜连续性试验仪
- iTunes Connect 基本使用说明