高级UI中的List控件对于广大应用来说是足够的。但有些特别需求的功能确不得不自己开发,比如实现没一行字体颜色不同,字体样式不同,还有排版等方面问题时候则要自己动手实现一个了。下面把我在项目中学习到得经验与大家分享下。
但是客户有个需求,说你这个List需要翻页,我要求输入什么键你进行上下翻页。我要求在每一行字体里面包含一些不同颜色得字,根据XP,好我拥抱需求。所以让我们来看下怎么修改程序得。
注意在看这篇文章之钱,请稍微留意下在下得前面几篇文章。谢谢,^_^
代码如下,我会加比较多得注释
java 代码
-
-
-
-
-
- package org.pook.ui;
-
- import java.util.Vector;
-
- import javax.microedition.lcdui.Graphics;
- import javax.microedition.lcdui.Image;
-
- import org.pook.ui.core.Platform;
- import org.pook.ui.util.GraphicsUtil;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- public class List extends Part {
- Image icon;
- Vector items;
- int numOfEls;
- int paintSize;
- int space;
-
- private int startIndex;
-
- public List(Image icon) {
- super(0, 21, Platform.WIDTH, Platform.HEIGHT - 41);
- this.icon = icon;
- items = new Vector();
-
- }
-
-
-
- public void changeViewAndSize(){
- if (Platform.HEIGHT - 20 > view[HEIGHT]) {
- view[HEIGHT] = Platform.HEIGHT - 41;
- space = font.getHeight() + 2;
- paintSize = view[HEIGHT] / space;
- }
- }
-
- public void append(Vector items){
- if(items == null)
- return;
- this.items = items;
- this.numOfEls = items.size();
- }
-
- public void append(String stringItem){
- this.items.addElement(stringItem);
- this.numOfEls = items.size();
- }
-
-
- public void insert(String stringItem){
- this.items.insertElementAt(stringItem,0);
- this.numOfEls = items.size();
- }
-
- public int getSelectIndex(){
- return this.selectIndex;
- }
-
- public String getSelectString(){
-
- return (String) this.items.elementAt(selectIndex+startIndex );
- }
-
- public void paint(Graphics g) {
- changeViewAndSize();
- GraphicsUtil.fillScreen(g, this.bgColor, view[X], view[Y], view[WIDTH], view[HEIGHT]);
- paintStrings(g);
- }
-
- private void paintStrings(Graphics g) {
-
- if (items.size() == 0)
- return;
- int size = this.paintSize > this.numOfEls? this.numOfEls:this.paintSize + startIndex;
-
- paintSelect(g, view[Y] + space * selectIndex + 2 );
-
- g.setColor(this.fontColor);
-
- for(int i =startIndex,j=0; i< size; i++, j++){
-
- String it = (String) items.elementAt(i);
-
- if(this.selectIndex == j){
- it = (String) items.elementAt(selectIndex+startIndex);
-
- }else{
-
- }
- GraphicsUtil.darwString(g,it, view[X] + 10, view[Y] + space *j + 2);
-
-
- }
- }
- private void paintSelect(Graphics g, int height) {
- g.setColor(0x909090);
- g.fillRect(view[X], height, view[WIDTH], space);
- }
-
- public void onClick(int keyCode) {
- keyUpAndDown(keyCode);
- }
-
-
-
-
-
-
- void keyUpAndDown(int keyCode) {
- if(this.numOfEls == 0)
- return;
- switch (keyCode) {
-
- case Platform.KEY_UP: {
- selectIndex--;
-
- break;
-
-
- }
- case Platform.KEY_DOWN: {
- selectIndex++;
-
- break;
- }
- }
- changeSelectIndex();
- }
-
-
-
-
- private void changeSelectIndex(){
- int num = (this.paintSize < numOfEls)?paintSize:numOfEls;
- if (selectIndex>num-1)
- {
- startIndex++;
- selectIndex=(byte)(num-1);
- }
-
- if (selectIndex < 0)
- {
- if (startIndex>0)
- {
- selectIndex =0;
- startIndex--;
- }
- else
- {
- startIndex = numOfEls-num;
- selectIndex=num-1;
- }
-
- }
- if (startIndex+ selectIndex > numOfEls -1)
- {
- startIndex= 0;
- selectIndex = 0;
- }
- }
-
- }
分享到:
相关推荐
基于低级界面的j2me UI库类,有demo和源码。高级界面的东西虽然好用但是在不同的手机上面显示得不一样,有的好看有的很丑,但是基于低级界面的就不一样了。在不同手机上显示出来都是一样的,这个UI库类是企业级的。...
在J2ME中,UI(用户界面)的设计和实现对于提供良好的用户体验至关重要。本文将深入探讨J2ME中的高级UI设计技巧、框架和实践。 一、触摸屏操作 在现代移动设备中,触摸屏已经成为主流的交互方式。在J2ME中处理触摸...
MIE J2ME UI库 v1.0 说明: MIE UI库(下简称MIE)是一个开源的手机(J2ME)GUI编程框架,与PC电脑上的AWT/Swing/SWT有相似的用处。 MIE提供了一套基本的UI组件,包括文本标签、文本框、文本域、按钮、单选框、复选框...
**标签“LWUIT j2me UI例子 制作漂亮的UI例子”** 强调了LWUIT在J2ME平台上的应用以及创建美观界面的重要性。这些标签可能关联着一个项目或教程,旨在帮助开发者学习和掌握LWUIT的UI设计技巧。 在**压缩包子文件的...
Lightweight User Interface Toolkit (LWUIT) 是一个专门针对 J2ME 平台设计的 UI 框架,它允许开发者创建丰富的、响应迅速且具有吸引力的图形用户界面。 LWUIT 1.3 版本是该框架的一个重要里程碑,它提供了许多...
**eSWT (Embedded Standard Widget Toolkit) 是一个专为J2ME(Java 2 Micro Edition)平台设计的用户界面框架,旨在提供更丰富、更接近原生应用的UI体验。** **eSWT 的出现主要源于以下几个原因:** 1. **作为...
- `javax.microedition.lcdui.*`: 这是J2ME中UI组件的核心包,包含了如`Display`, `List`, `Form`, `TextField`等类。 - `javax.microedition.midlet.*`: 包含了`MIDlet`类,这是所有J2ME应用的基础类。 2. **...
总的来说,LWUIT是J2ME开发中不可或缺的工具,它极大地提高了UI开发的效率和质量。通过熟练掌握LWUIT,开发者能够为Java ME平台创建出具备高级UI特性的移动应用,吸引更多的用户,并提升应用的整体品质。而文档中的...
通过上述内容可以看出,《诺基亚 S60 FP1 J2ME UI 开发指南》为开发者提供了全面而深入的技术指导,有助于他们更好地理解和掌握 S60 平台上 J2ME 应用程序 UI 设计的关键要素,进而开发出既符合技术规范又满足用户...
**J2ME高级UI编程源码详解** J2ME(Java 2 Micro Edition)是Java平台...通过深入研究"Example02"源码,开发者不仅可以学习到J2ME UI设计的基本原理,还能掌握高级UI编程技巧,从而提升自身在移动设备应用开发的能力。
Mewt 是一个专为J2ME设计的UI控件库,它提供了一系列轻量级、可自定义皮肤的UI组件,适应于各种不同屏幕尺寸的设备。Mewt 的设计目标是为开发者提供更加灵活、高效的界面设计工具,以便在资源有限的移动设备上创建出...
根据提供的文件信息,我们可以了解到这段代码是针对Java 2 Micro Edition (J2ME)平台的一个简单示例程序,主要用于展示如何在J2ME应用中创建一个列表并处理相关的用户交互事件。下面将对这段代码涉及的关键概念和...
该List控件是基于J2ME的画布Canvas开发的通用列表控件;该控件分为默认、数字、图标列表显示三种类型,,,,,列表样式可以通过相关属性来设置。该List控件需要提供MIDlet和一个Canvas。
在 J2ME 中,UI(用户界面)设计是至关重要的,因为它直接影响到用户体验。在这个“J2ME 菜单 List”项目中,我们聚焦于如何创建和定制 J2ME 应用程序中的菜单系统。 1. **J2ME UI 构建块** J2ME 的 UI 基于 MIDP ...
**J2ME+UI框架LWUIT开发手册** 在移动设备技术发展早期,Java 2 Micro Edition(J2ME)是开发嵌入式系统和...但LWUIT对于理解移动UI设计和交互仍有一定的参考价值,尤其是对于那些仍然需要维护J2ME应用的开发者来说。
### J2ME最佳实践与UI设计关键知识点 #### 一、J2ME概述与MIDP版本 J2ME(Java 2 Micro Edition),由Sun Microsystems发布,是为小型设备和消费类电子产品设计的Java平台标准。其核心是MIDP(Mobile Information ...
**J2ME游戏课程设计详解** Java 2 Micro Edition(J2ME)是Java平台的一个子集,专门用于开发在移动设备、嵌入式系统等资源有限的环境中运行的应用程序,其中包括游戏。J2ME游戏课程设计是学习移动游戏开发的重要...
**J2ME课程设计——贪吃蛇** J2ME(Java Micro Edition)是Java平台的一个重要分支,主要用于嵌入式设备和移动设备的开发,如早期的智能手机和平板电脑。在J2ME平台上进行课程设计,可以让我们学习到Java语言的基础...
lwuit开发文档,英文的,勉强看得下去,chem格式很受欢迎
MIDP(Mobile Information Device Profile)是J2ME中用于开发移动应用的profile,它包含了基础的UI组件(如Canvas和Form),网络API(如HttpConnection)以及数据存储能力。CLDC(Connected Limited Device ...