在使用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基础相关推荐

  1. Webpack系列-第一篇基础杂记

    系列文章 Webpack系列-第一篇基础杂记 Webpack系列-第二篇插件机制杂记 Webpack系列-第三篇流程杂记 前言 公司的前端项目基本都是用Webpack来做工程化的,而Webpack虽然 ...

  2. iOS动画系列之五:基础动画之缩放篇旋转篇Swift+OC

    这一篇主要介绍基础动画之缩放和旋转.这些基本操作分享完之后,我想想可以找个稍微复杂一点点的动画做做啦. 这篇继续基础篇,分享一下缩放和旋转.因为整体思路和平移基本上没有变化,加上源代码里面也有OC版本 ...

  3. linux基础试卷笔试,顽石系列:Linux基础笔试

    顽石系列:Linux基础笔试 系统操作 压缩文件 扩展名压缩程序 *.Z compress *.zip zip *.gz gzip *.bz2 bzip2 *.xz xz *.tar tar 程序打包 ...

  4. 深度学习与计算机视觉系列(1)_基础介绍

    转载自: 深度学习与计算机视觉系列(1)_基础介绍 - 龙心尘 - 博客频道 - CSDN.NET http://blog.csdn.net/longxinchen_ml/article/detail ...

  5. jQuery小测试系列之jQuery基础知识

    日期:2012-4-17  来源:GBin1.com 这是jQuery小测试系列第一部分:基础知识. 来源:jQuery小测试系列之jQuery基础知识

  6. [系统安全] 四十六.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  7. Java面试题系列之Java基础类库(一)

    Java程序员面试题大全系列之Java基础类库(一)                                                                           ...

  8. 手摸手,带你用vue撸后台 系列一(基础篇) - 掘金

    完整项目地址:vue-element-admin 系列文章: 手摸手,带你用 vue 撸后台 系列一(基础篇) 手摸手,带你用 vue 撸后台 系列二(登录权限篇) 手摸手,带你用 vue 撸后台 系 ...

  9. .NET 并行(多核)编程系列之六 Task基础部分完结篇

    .NET 并行(多核)编程系列之六 Task基础部分完结篇 前言:之前的文章介绍了了并行编程的一些基本的,也注重的讲述了Task的一些使用方法,本篇很短,将会结束Task的基础知识的介绍. 本篇的主要 ...

  10. SQL Server 2008空间数据应用系列四:基础空间对象与函数应用

    SQL Server 2008空间数据应用系列四:基础空间对象与函数应用 原文:SQL Server 2008空间数据应用系列四:基础空间对象与函数应用 友情提示,您阅读本篇博文的先决条件如下: 1. ...

最新文章

  1. 哪些软件问题也可导致硬盘录像机死机
  2. 可穿戴计算之父:成都能成为可穿戴技术未来中心
  3. Leetcode232使用栈实现队列
  4. 在Xcode6中添加prefix.pch文件
  5. 如何躲开技术人员35岁魔咒?【有惊喜系列】
  6. React Native 交互管理器InteractionManager
  7. Xamarin.Android 引导页
  8. SQL Server存储过程的使用
  9. python2.7 安装第三方库
  10. rms 公式 有效值_有效值、真有效值、基波有效值、全有效值概念辨析
  11. Word2016目录自动生成+页码从目录页后面显示
  12. 小程序转uniapp——disabled
  13. 几款好用证件照制作工具推荐
  14. 科学计算基础软件包NumPy入门讲座(5):常用函数
  15. 如何在jupyter中执行带参数的py文件
  16. PointGet的一生
  17. 祝各位SAPER元旦快乐!
  18. FlatList ListHeaderComponent 频繁刷新
  19. Oracle v$sql 视图详解
  20. 如何在线将XPS转换成PDF?

热门文章

  1. UltraISO 软碟通制作系统U盘
  2. 为windows 驱动程序签名
  3. Redis实现分布式限流(学习笔记
  4. 关于 迪奥 中国官网 dior.cn 的真假性判断 ~
  5. failure: repodata/repomd.xml from docker-main-repo: [Errno 256] No more mirrors to try.
  6. 行式数据库评测:Oracle 11g R2企业版
  7. 从事软件测试需要学自动化么
  8. ps中图层放到顶层的快捷键是什么?
  9. KDYD-JC自动高压漆膜连续性试验仪
  10. iTunes Connect 基本使用说明