`
friendsys
  • 浏览: 347355 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

Lwuit 组件笔记

阅读更多
组件关系
Component为所有的可视化组件的父类,在其之下有四个分支
Container (TabbedPane,Form(Dialog))
TextArea 
List   (ComboBox)
Label     (Button(RadioButton,CheckBox))


Container 可以容纳包括容器在内的其他组件.容器内的组件排列由 布局管理器 负责。

Form 是顶部有 标题栏(Title Bar)、底部是 菜单栏(Menu Bar)的容器,标题栏可以写入窗体名称,菜单栏可以写入命令和菜单。两栏之间为内容窗格,该窗格用于放置窗体上的组件。

TabbedPane 允许大量部件组放置在同一个空间。每组部件都有一个与之关联的选项卡,用户只能看到与选定选项卡相对应的部件组。默认的选项卡位置在窗格顶部。但是,也可 以将其置于左侧、右侧或者窗格下部

对话框
Dialog 是一个“永远处于顶层”的组件。默认情况下,对话框是情景式的 (modal),在销毁之前它将阻塞调用线程

分为五种类型
Alarm
Confirmation
Error
Info
Warning

对话框可用于向用户传递运行时信息,以及收集用户反馈。不同类型的对话框在显示时将会有相应的提示音。可以向对话框中加入图标,以图形方式指示其类型


标签和按钮

Label 用于显示图像和文本,但显示内容不能被选中,也不能和用户进行交互。可通过许多对齐功能来精确放置标签和标签上图像的相关文本。

Button 类扩展自 Label 类。按钮有自己的 状态,当它被选中和单击时会生成一个 操作事件。也可以附带图片

按钮的三种状态如下:
Rollover:这通常相当于按钮处于选中状态,获得焦点。
Pressed:当按钮被单击或按下时。
Default:当按钮既未被选中,也未被单击时。

Button 类有两个子类:RadioButton 和 CheckBox。RadioButton 具有 Button 类的全部功能。此外,Radiobutton 可以被添加到 ButtonGroup 中,ButtonGroup 类允许它在组内保持独占选定状态,只能选中一个;

checkBox 复选框不能是按钮组的一部份,其他和HTML等组件中的功能一样

文本域  TextArea

TextArea 是显示可编辑文本的组件。可使用本机系统编辑器对其进行编辑,这通常会打开一个新的屏幕.


List 列表

LWUIT 采用了 模型-视图-控制器 体系结构
列表的数据结构由 ListModel 接口表示。所以列表不会局限于特定数据结构,它可以显示任何实现了该接口对象的信息。同样,列表的呈现由实现 ListCellRenderer 的类来完成,因此,开发人员可创建各种类型的外观。

ComboBox 是一种节省空间的组件,单击时会有下拉列表显示。用户可以从列表中选择某项。由于ComboBox 扩展自 List,您也可以将自定义模型和呈现程序用于组合框,也就是添加自定义的显示,也就是上面所描述的.


底层资源文件---图像资源,动画资源,位图字体,本地化资源包,主题,可以使用资源编辑器进行管理

布局管理器 ,如下五种
BorderLayout
BoxLayout
FlowLayout
GridLayout
GroupLayout

Style 样式设置,基于组件的样式  (getStyle()),也就是类似HTML中的css设计
颜色
字体
图像
边距
填充
透明度

当生成某个组件后,将会构建一个默认的 Style 对象,也可以使用theme主题,生成全局默认的皮肤主题

Painter 接口允许您在组件背景上绘制图形,LWUIT 包提供了两个类来实现此接口 //需要研究下

BackgroundPainter:根据其自身样式绘制组件背景。
PainterChain:创建一系列产生图层效果的 Painter,每个 Painter 负责绘制一个元素。

UIManager

LWUIT 的一个重要特性是可从单一位置管理整个应用程序的外观。UIManager 类可以调整应用程序的视觉方面。该组件可以确保每个应用程序只有一个 UIManager 对象。此类的方法可以在所有组件上应用同样的外观,从而动态本地化用户界面。


LookAndFeel
负责应用程序各种呈现方式的接口。通过重写此接口的相应方法,可以完全定制应用程序的外观。LookAndFeel 在 LWUIT 包中的具体实现是 DefaultLookAndFeel,该类控制默认外观的实际呈现。通过使用 UIManager 的 setLookAndFell方法,可以插入 LookAndFell 的自定义实现。

窗体之间的转换 -----Effect

LWUIT 库支持现有窗体与将要显示的窗体之间的、不同模式的转换实现。这种转换的基本实现是通过 Animation 接口、Motion 类、Transition 类、CommonTransitions 类和 Transition3D 类的机制来完成的,可以在 com.sun.lwuit.animations 包中找到它们

动画的实现过程

Animation 接 口定义了动画类对象。由于所有组件都实现了 Animation
组件必须在父窗体中对其自身进行注册,以便获得动画回调,从而执行动画任务。如要停止这些回调,组件必须明确取消注册自身

transition 是一个抽象类,该类表示从一个窗体过渡到另一个窗体时的动画,两个具体子类的例子

CommonTransitions:含有实现 Slide 和 Fade 两种通用转换类型的方法。
Transition3D:执行转换(Cube、飞入 和 旋转),要求设备支持 3D 图形  //这里的3D效果可以考虑删除,支持不好

Motion 是用来实现运动效果的类。内置的运动类型包括 linear、spline 和 friction。可以通过实现 Motion 的子类来实现其他类型的运动效果


载入主题时,就会从res中读取主题数据,从而对所有相应的属性的组件进行更新,不过只影响未被手动修改的属性

其他功能

日志记录
com.sun.lwuit.util.Log 类提供了将日志信息写入 日志 文件(在 root 目录中创建)的方法,也可以在 Form 和控制台上显示日志信息。可以通过 FileConnection API 来使用保存在日志文件中的信息。

3D功能: 在某些移动设备上支持可选的硬件加速,以提高其性能。


LWUIT的Button使用以及窗体布局

布局
BorderLayout  //按照东西南北中的部分方式
BoxLayout-X   //从左向右的布局
BoxLayout-Y   //从上向下的布局
FlowLayout    //从左到右,满时会自动换行
GridLayout    //表格式布局

Demo中还涉及了添加组件的方式,均使用lwuit下的组件
  public Form form = new Form("LayoutDemo");  //新建一个Form

//BorderLayout,就是把窗体布局分成东、南、西、北、中这5部分
        border = new Button("BorderLayout");
        //顾名思义,设置按钮背景的透明度,范围0~255,可以用Util的资源编辑器来预先修改
        border.getStyle().setBgTransparency(100);
        //每个button都需要设计监听事件
        border.addActionListener(this);

对于事件监听的处理和ActionListener一样 实现一个接口

这里通过事件源发出的信息进行处理
public void actionPerformed(ActionEvent arg0) {
        String button_name=((Button)(arg0.getSource())).getText();
        if(button_name.equals("BorderLayout"))
        {}

进行显示的时候
Display.init(this);
Resources r;
try {
r = Resources.open("/javaTheme.res");
UIManager.getInstance().setThemeProps(
r.getTheme(r.getThemeResourceNames()[0]));
LayoutDemo l = new LayoutDemo();
l.form.show();
} catch (IOException e) {
e.printStackTrace();
}
进行init,加载资源文件,显示组件

动态修改布局方式
    form.setLayout(new BoxLayout(BoxLayout.X_AXIS));
            form.setScrollable(true);
            addComponents(form);
            form.show();

通过继承Component来获取绘图的操作

com.sun.lwuit.Command用于类似原有的Command的实现

添加组件后需要使用
form.addComponent(cdlabel); //进行添加到页面之上

Radio组 单选组
final RadioButton thirdRB = new RadioButton("Third RadioButton");
form.addComponent(thirdRB);

添加到组
public ButtonGroup group = new ButtonGroup();
group.add(firstRB);


设置样式
Label cdlabel = new Label("CheckBox:");
cdlabel.getStyle().setMargin(Component.BOTTOM, 0);

事件处理机制
ActionListener用于处理组件的事件

firstCB.addActionListener(listener);
用于注册组件事件监听器
ActionListener listener = new ActionListener() {
public void actionPerformed(ActionEvent arg0) {}
}  // 匿名接口的形式进行

设置全局监听器,需要保证当前类实现了ActionListener接口
form.setCommandListener(this);
public void actionPerformed(ActionEvent arg0) {
    //这里处理Command 以及 判断ButtonGroup所选中的RadioButton
        Command cmd=arg0.getCommand();}

显示提示框
Dialog.show("Rb_Cb_Lb",str, "OK", null);

Tab组件
TabbedPane tp = new TabbedPane();
//addTab可以为页面添加控件,也可以是Container(相当于容器的控件)
tp.addTab("Tab 1", new Label("Welcome to TabbedPane demo!"));

也可以添加新的容器
Container radioButtonsPanel = new Container(new BoxLayout(BoxLayout.Y_AXIS));
tp.addTab("Tab 2", radioButtonsPanel)
同时该容器内也可以继续添加组件
radioButtonsPanel.addComponent(RightRB);

列表List组件
DefaultListModel myListModel = new DefaultListModel(str_list);
        List list = new List(myListModel);
提供一个数组生成DefaultListModel的实例,也可以传递数组直接给List的构造函数

  list.addActionListener(this); 进行事件注册

添加组件可以有两个参数 布局和组件
form.addComponent(BorderLayout.NORTH,button);

对话框

Dialog 是一个“永远处于顶层”的组件。默认情况下,对话框是情景式的 (modal),在销毁之前它将阻塞调用线程。对话框共有以下 5 种类型:

Alarm
Confirmation
Error
Info
Warning










































































































分享到:
评论

相关推荐

    最新LWUIT_1_5

    1. **组件库**:LWUIT提供了丰富的组件集合,如按钮、文本框、标签、列表、表格等,这些组件可以方便地进行布局管理和定制,以满足各种界面需求。 2. **样式表支持**:LWUIT允许开发者使用CSS(层叠样式表)来定义...

    lwuit实例 lwuit j2me 界面

    1. **LWUIT组件**:LWUIT提供了丰富的UI组件,如按钮、文本框、标签、列表、表格等,它们都具有高度可定制的外观和行为。 2. **样式表和主题**:LWUIT允许开发者通过XML样式表定义组件的颜色、字体、边框等视觉属性...

    Lwuit入门程序测试一下Demo

    2. **丰富的UI组件**:LWUIT提供了一系列预定义的UI组件,如按钮、文本框、列表、表单等,使开发者可以快速构建美观的界面。 3. **可定制性**:开发者可以通过皮肤(theme)来定制UI的外观和感觉,实现高度个性化的...

    lwuit_demo_src.rar_DEMO_J2ME lwuit de_LWUIT_lwuit demo

    开发者可以通过研究这些源代码,学习如何初始化LWUIT环境,创建和布局UI组件,处理用户事件,以及自定义组件样式等。 在标签中提到了"demo j2me",这表明这个示例是针对J2ME平台的。J2ME是Java的一个子集,主要用于...

    lwuit.rar_LWUIT_java 项目_手机动态

    LWUIT( Lightweight UI Toolkit )是Java ME(Micro Edition)平台上的一款开源用户界面库,专为移动设备设计,提供了一套丰富的组件和强大的动画效果,以创建吸引人的、交互性强的用户界面。这个名为“lwuit.rar_...

    lwuit 最新源码还有tree table 源码

    3. 自定义组件:开发者可以方便地扩展和定制LWUIT组件,以满足特定应用的需求。 4. 丰富的主题:LWUIT提供主题编辑器,允许开发者轻松地改变应用的外观和感觉。 在压缩包文件中,"com"可能代表了源代码的包结构,...

    Eclipse下真正可用的LWUIT源码及实例

    2. **组件库**:LWUIT提供了一系列可自定义的UI组件,如按钮、文本框、列表、表单等,使开发者能够快速搭建应用界面。 3. **样式表**:LWUIT允许通过CSS(层叠样式表)来控制组件的外观和布局,使得应用界面的设计...

    LWUIT实力应用netbeans教程

    【描述】"扩展j2me开发组件,快速开发漂亮的界面它包含按钮,文本,命令等组件" 提示我们,这个教程将指导学习者如何利用LWUIT扩展Java ME(J2ME)的默认组件库。LWUIT的组件不仅包括基本的按钮、文本字段,还有命令...

    LWUIT.jar LWUIT.jar

    LWUIT.jarLWUIT.jarLWUIT.jarLWUIT.jarLWUIT.jarLWUIT.jar

    LWUIT1.3code.rar_LWUIT

    1. **组件丰富**:LWUIT 提供了多种预定义的UI组件,如按钮、标签、列表、表单、进度条等,这些组件在外观和功能上都经过精心设计,可以满足开发者创建复杂界面的需求。 2. **主题定制**:LWUIT 强调可定制性,允许...

    Hello LWUIT——LWUIT开发指南2

    LWUIT(Lightweight User Interface Toolkit)是Java ME平台上的一个开源用户界面库,它为开发者提供了丰富的UI组件和强大的设计工具,使得在移动设备上创建美观、交互性强的应用程序变得更加简单。这篇开发指南将...

    LWUIT j2me UI例子

    LWUIT 提供了丰富的组件、布局管理器和主题功能,使得开发者可以轻松地设计出美观且响应迅速的界面。 **标题“LWUIT j2me UI例子”** 暗示我们将探讨使用LWUIT库在J2ME环境中创建用户界面的具体实例。在J2ME开发中...

    Hello LWUIT——LWUIT开发指南3

    1. **LWUIT组件基础**:LWUIT提供了多种预定义的组件,如按钮、文本框、列表、表单等,它们都继承自`Component`类。单选按钮`RadioButton`是其中的一种,用于表示互斥的选择项。 2. **创建RadioButton**:创建一个`...

    lwuit.rar_J2ME lwuit_LWUIT_j2me_j2me LWU_九宫

    1. **创建自定义组件**:根据九宫图的布局,可能需要创建一个自定义组件,继承自LWUIT的基础组件,如Container,然后在此基础上添加子组件,每个子组件代表一个宫格。 2. **布局管理**:使用LWUIT的布局管理器,如...

    Lwuit中CheckBox、ComboBox组件的使用说明

    这篇博客文章主要介绍了如何在LWUIT中有效地使用这两个组件。 CheckBox组件是用户界面中常见的一种选择控件,通常用于提供多个可选的选项。在LWUIT中,你可以通过以下步骤创建和使用CheckBox: 1. **导入相关类**...

    LWUIT

    LWUIT 提供了丰富的组件和可定制的外观,使得开发者能够创建出具有吸引力、功能丰富的图形用户界面。这个框架大大简化了J2ME应用的UI开发,提高了开发效率,并且让应用程序在不同设备上的表现更加一致。 LWUIT 的...

    Hello LWUIT——LWUIT开发指南1

    总的来说,"Hello LWUIT"是学习LWUIT基础的一个很好的起点,它涵盖了LWUIT的基本概念、组件使用、事件处理、布局管理和主题定制等方面,为后续深入学习和实践奠定了基础。通过这个简单的示例,开发者将对LWUIT有一个...

    lwuit-1.4 源代码

    - **丰富的组件库**:LWUIT包含了一系列预定义的UI组件,如按钮、文本框、列表、表格等,支持自定义样式和行为。 - **皮肤机制**:LWUIT引入了皮肤(Theme)的概念,允许开发者通过XML文件定义UI的外观和感觉,...

    SUN LWUIT Demo

    SUN LWUIT(Light Weight UI Toolkit)是Sun Microsystems公司开发的一款轻量级用户界面工具包,它为Java ME(Mobile Edition)平台提供了丰富的图形用户界面组件。LWUIT的目标是让开发者能够在资源有限的移动设备上...

    LWUIT1.3 完整jar包及api文档

    1. **组件库**:LWUIT提供了丰富的UI组件,如按钮、文本框、列表视图、表格、滑块、进度条等,使开发者可以构建复杂的用户界面。 2. **主题和样式**:LWUIT支持自定义主题,允许开发者通过XML配置文件定义UI元素的...

Global site tag (gtag.js) - Google Analytics