`

lwuit list

阅读更多
1.下面两个java文件是一个实例,直接放在工程下就可以直接看到效果。
  效果图见下面的上传文件
Cls_CellList. java主要使用了ListCellRenderer这个东西,源代码如下:
package com.sun.lwuit.uidemo;  
import com.sun.lwuit.Component;  
import com.sun.lwuit.Container;  
import com.sun.lwuit.Label;  
import com.sun.lwuit.List;  
import com.sun.lwuit.events.ActionListener;  
import com.sun.lwuit.layouts.BorderLayout;  
import com.sun.lwuit.layouts.BoxLayout;  
import com.sun.lwuit.list.ListCellRenderer;  
import com.sun.lwuit.plaf.Border;  
public class Cls_CellList {  
    static public List createList(CellList[] celllist,int stringWidth,ActionListener lAListner) {  
        List list = new List(celllist);  
        list.getStyle().setBgTransparency(0);  
        //开始显示List  
        list.setListCellRenderer(new CellRenderer(celllist[0].getColumm().length,stringWidth));  
        //添加消息处理  
        list.addActionListener(lAListner);  
        return list;  
    }  
static public class CellRenderer extends Container implements ListCellRenderer {  
        //初始化显示Columm每个字段的Label  
        private Label[] lbColumm ;  
        private Label focus = new Label("");  
        public CellRenderer(int size,final int stringWidth) {  
            lbColumm = new Label[size];  
            setLayout(new BorderLayout());  
            Container cnt = new Container(new BoxLayout(BoxLayout.X_AXIS));  
            for(int i=0;i<lbColumm.length;i++)//定义显示Columm每个字段的Label  
            {  
                lbColumm[i]=new Label(){  
                    //很多人都问怎么setWidth平时没什么用,这是因为setWidth必须在重载的时候使用,LWUIT奇怪的地方之一!  
                    public void setWidth(int arg0) {  
                        super.setWidth(stringWidth);  
                    }  
                };  
                lbColumm[i].getStyle().setFgColor(getStyle().getFgSelectionColor());//设置为最亮的颜色  
                lbColumm[i].getStyle().setBgTransparency(0);//设置背景为透明,不然会遮挡focus影响外观  
                cnt.addComponent(lbColumm[i]);  
            }  
              
            addComponent(BorderLayout.CENTER, cnt);  
            focus.getStyle().setBgTransparency(255);  
            focus.getStyle().setBorder(Border.createRoundBorder(10, 10));  
        }  
        public Component getListCellRendererComponent(List list, Object value, int index, boolean isSelected) {  
            CellList cellList = (CellList) value;  
            for(int i=0;i<lbColumm.length;i++)  
            {  
                lbColumm[i].setText(cellList.getColumm()[i]);  
            }  
            return this;  
        }  
        public Component getListFocusComponent(List list) {  
            //Columm栏不具备选中事件  
            if(list.getSelectedIndex()>0)  
                return focus;  
            return null;  
        }  
    }  
    static public class CellList {  
        //保存该列的所有字段  
        private String[] lstColumm;  
        public CellList(String[] columm) {  
           //复制数组  
           lstColumm=new String[columm.length];  
           System.arraycopy(columm, 0, lstColumm, 0, lstColumm.length);  
        }  
        //返回该列  
        public String[] getColumm(){  
           return lstColumm;  
        }  
    }  


ListDemo.java源代码如下:





/* 
* Copyright ?2008 Sun Microsystems, Inc. All rights reserved. 
* Use is subject to license terms. 

*/ 
package com.sun.lwuit.uidemo;  
import com.sun.lwuit.Command;  
import com.sun.lwuit.Font;  
import com.sun.lwuit.Form;  
import com.sun.lwuit.List;  
import com.sun.lwuit.events.ActionEvent;  
import com.sun.lwuit.events.ActionListener;  
import com.sun.lwuit.layouts.BorderLayout;  
public class ListDemo implements ActionListener  {  
    public Form form = new Form("ListDemo");  
    private  Command backCommand = new Command("Back", 1);  
    private String[][] myList = {  
        {"  标题1  ","  标题2  ","  标题3  "," 标题4 "},//表格每个字段的显示长度由标题栏的最长一项决定  
        {"aaaaa","bbbbb","ccccc","ddddd"},  
        {"11111","222222","33333","444444"},  
        {"aaaaa","bbbbb","ccccc","ddddd"},  
        {"11111","222222","33333","444444"},  
        {"aaaaa","bbbbb","ccccc","ddddd"},  
        {"11111","222222","33333","444444"},  
        {"aaaaa","bbbbb","ccccc","ddddd"},  
        {"11111","222222","33333","444444"}  
    };  
    ListDemo(){  
        form.setLayout(new BorderLayout());  
        form.addCommand(backCommand);  
        form.setScrollable(true);  
        //定义列表的列数  
        Cls_CellList.CellList[] cellArray = new Cls_CellList.CellList[myList.length];  
        for (int i = 0; i < cellArray.length; i++) {  
            cellArray[i] = new Cls_CellList.CellList(myList[i]);  
        }  
          
        //取得Columm的标题栏中长度最大的一项  
        int stringWidth=0;  
        for(int i=0;i<myList[0].length;i++)  
        {  
            int size=Font.getDefaultFont().stringWidth(myList[0][i])+8;//给最长的字段留点空余  
            if(stringWidth<size)  
                stringWidth=size;  
        }  
        //构造list并且显示  
        form.addComponent(BorderLayout.CENTER,Cls_CellList.createList(cellArray,stringWidth,new ListActionListener()));  
        form.setCommandListener(this);  
    }  
    public void actionPerformed(ActionEvent arg0) {    
        Command command=arg0.getCommand();  
        if(command==backCommand)  
            UIDemoMIDlet.backToMainMenu();  
    }  
    //按下列表触发的事件  
    private class ListActionListener implements ActionListener {  
        public void actionPerformed(ActionEvent evt) {  
            int selectIndex=((List)evt.getSource()).getSelectedIndex();  
            String str="";  
            for(int i=0;i<myList[selectIndex].length;i++)  
                str=str+myList[selectIndex][i]+"_";  
            form.setTitle(str);  
        }  
    }  



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hellogv/archive/2009/11/04/4767263.aspx


















本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hellogv/archive/2009/11/04/4767263.aspx
  • 大小: 1.8 KB
分享到:
评论

相关推荐

    LWUIT的List转变为表格

    LWUIT提供了多种组件,其中包括List组件,它类似于一个可滚动的列表,通常用来显示一系列的项目。然而,在某些场景下,开发者可能希望将List展示成更直观的表格形式,以提高数据的可读性和可视化效果。本文将深入...

    LWUIT_MakeOver源码

    LWUIT_MakeOver源码是一个关于如何利用LWUIT库进行界面设计和优化的实例项目,特别是针对List组件的使用进行了深入的展示。 在源码中,你可以找到以下关键知识点: 1. **List组件**:List是LWUIT中的核心组件之一...

    LWUIT 开发指南第三章里的 Hello List 源代码

    本源码是博客《解读 LWUIT 之七:深入理解 LWUIT 框架的 MVC》中作者写的 Hello List 源代码。博客链接地址:http://blog.csdn.net/defonds/archive/2010/03/01/5334736.aspx。

    lwuit 1.4 api文档

    1. **组件库**:LWUIT提供了多种UI组件,如按钮(Button)、标签(Label)、文本框(TextField)、列表(List)、表单(Form)等,这些组件使得开发者能够快速构建出交互式的用户界面。 2. **布局管理器**:LWUIT...

    lwuit 最新源码还有tree table 源码

    它不同于J2ME中的List组件,List通常只支持单列的线性数据展示。Table组件提供了更灵活的数据组织方式,可以用于显示多列数据,并且支持排序、筛选等功能。开发者可以通过自定义CellRenderer来控制单元格的样式和...

    使用Lwuit中遇到的问题解决

    LWUIT( Lightweight UI Toolkit)是Java ME平台上用于构建用户界面的一个库,它提供了一组丰富的组件和动画效果,使得开发者能够创建具有吸引力的移动应用。在使用LWUIT时,可能会遇到各种问题,以下是一些常见的...

    lwuit api 文档

    - **组件**:LWUIT提供了一系列组件,如Button、Label、Form、List、ComboBox等,这些组件可以组合成复杂的用户界面。 - **布局管理器**:布局管理器如FlowLayout、BoxLayout、GridBagLayout等,决定了组件在屏幕...

    LWUIT 入门资料个人整理

    ### LWUIT 入门知识点详解 #### 一、LWUIT 概览 LWUIT(Light Weight UI Toolkit)是一款轻量级的图形用户界面工具包,专为资源有限的移动设备设计,如手机和PDA。它提供了一系列丰富的用户界面组件和功能,帮助...

    lwuit 开发文档

    1. **组件(Components)**:LWUIT包含各种常用的UI组件,如按钮(Button)、文本框(TextField)、列表(List)、表(Table)、对话框(Dialog)等。这些组件可以自由组合,构建出复杂的界面布局。 2. **容器...

    JavaME LWUITDemo 案例 界面开发

    1. **LWUIT组件**:LWUIT包括各种基本的UI组件,如按钮(Button)、文本框(TextField)、标签(Label)、列表(List)、表格(Table)等。了解这些组件的用法是创建界面的基础。 2. **布局管理**:LWUIT支持不同的...

    3. 高级界面开发2Command事件和List3.rar

    在J2ME(Java 2 Micro Edition)的高级界面开发中,Command事件和List组件是构建用户交互界面的关键元素。本教程将深入讲解这两个概念,帮助开发者创建更加丰富和功能强大的移动应用程序。 首先,让我们来看一下...

    最新版LWUIT1.3(2009.12.15)

    Tree树形组件,Spinner相当于Combobox形式的选择组件,Spinner和Combobox同样都继承自List。 添加了TableLayout。 重新实现Combobox,重新设计了ListCellRenderer的Painter 对触摸设备的支持进行了改良 把SVG也...

    J2ME高级界面控件演示程序Eclipse

    - **ListExample**:展示了如何创建和管理List控件,包括添加、删除条目以及监听用户选择。 - **ButtonDemo**:演示了按钮的创建和事件处理,如点击事件的响应。 - **TextBoxSample**:展示了TextBox的使用,包括...

    J2ME中文教程

    - List组件:展示可选项目的列表,支持单选或多选。 6. **第7章-手机游戏开发**: - 游戏框架:如LWUIT、Game API等,用于创建游戏逻辑和图形渲染。 - 时间循环和事件处理:实现游戏循环,处理碰撞检测和用户...

    J2ME实现的邮件信箱界面代码

    在本例中,邮件列表界面可以通过List组件实现,每个邮件项作为一个List Item显示。用户可以通过导航键选择邮件,触发查看或删除操作。 2. **数据存储**: 为了存储邮件信息,J2ME应用可能使用Record Management ...

    电话本(关于J2ME)

    1. **用户界面**:使用J2ME的用户界面组件(如MIDP的LWUIT或CLDC的Basic UI)来构建电话簿的界面,包括添加、编辑、删除联系人的界面元素。 2. **数据存储**:J2ME提供了几种数据存储机制,如Record Management ...

    基于j2me的角色小游戏包括高分榜

    开发者需要熟练掌握LWUIT( Lightweight UI Toolkit)或者MIDP的Form和ChoiceGroup等控件来构建游戏界面。 3. **高分榜功能**:游戏中的高分榜是通过J2ME的RMS(Record Management System)实现的。RMS是一个轻量级...

    J2ME中文教程J2ME开发下载.

    - **LWUIT (Lightweight User Interface Toolkit)**:一个可选的库,提供更丰富的UI组件和动画效果。 5. **存储管理** - **RecordStore**:J2ME中的数据存储系统,用于在设备上保存应用数据。 6. **程序打包与...

    SWT/JFace学习文档

    在实际开发中,开发者还会遇到Composite(组合组件)、Button、Text、List、Tree、Table等SWT组件,以及Dialogs、Layouts等高级功能。同时,JFace的View、Part、Action等概念用于构建更复杂的RCP应用程序。通过深入...

Global site tag (gtag.js) - Google Analytics