LWUIT精简解说 21条 [转]
Sun发布了LWUIT(Light-Weight UI Toolkit)的源代码以及示例代码。项目主页访问:lwuit.dev.java/
The Lightweight UI Toolkit (LWUIT) 是一个轻量级JavaME UI工具包。LWUIT类似Swing 的MVC架构, 支持多种布局(Layouts), 皮肤更换, 字体, 触摸屏, 动画效果, Rich控件, 3D集成, Painter, 模式对画框, I18N/L10N等。
学习Lwuit时,一些基础知识是一定要掌握的,以下是一些基本应用,包括组件的一些基本属性,使用方式,以及布局,并提及一些需要注意的地方。
在MIDlet中初始化Lwuit 也是唯一使用原有J2me的东西
可以在startApp方法中定义启动的过程
checkbox和radiobutton的区别 public void startApp() {
//init the LWUIT Display
Display.init(this);
//加载资源文件
try {
Resources r = Resources.open("/s");
Instance().Theme(
r.getThemeResourceNames()[0])
); }
catch (java.io.IOException e) {
}
简单的使用一个内置Form进行显示,而无须使用一个而外的类
Form f = new Form();
f.setTitle("Hello World");
f.setLayout(new BorderLayout());
f.addComponent("Center", new Label("I am a Label"));
f.show();
注意使用show方法进行显示
组件介绍
关于组件的使用,我一共列出了21条:
1。Component,Container,Form
2。Label
3。Button
4。RadioButton,ButtonGroup,CheckBox,ComboBox
5。TextArea
6。TabbedPane
7。 使用 Lists
8。ListCellRenderer 渲染器
9。使用 Dialogs 对话框
10。使用LayoutManagers 使用布局管理器(BorderLayout,BoxLayout,FlowLayout,GridLayout,GroupLayout)
11。使用 Painter
12。Using the Style Object 设置样式对象
13。Theming 皮肤
14。Resources 资源
15。Localization (L10N) 本地化
16。M3G 用于实现3D功能,需要手机的支持 Jsr184
17。Logging 日志,可以保存在RMS或者本地文件中
18。创建自定义的组件,只要继承Component对象,然后重写paint方法即可,类似Canvas的操作
19。用于在窗口变化时候获取合适的显示效果
20。影响内存使用的因素
21。Speed 速度方面
1。Component,Container,Form
Component 用于显示到页面上的基础部分,可以理解为DisplayObject,也就是组件部分
Container 用于保存多个Components的容器类型,提供了布局的能力
Form : 提供title和menus,并且提供一个content放置Components,并且提供了content的滚动能力,addComponent,用于添加Components到Content中
•提供的一些方法和使用方式
Form mainForm = new Form("Form Title"); //声明一个带标题的Form
mainForm.setLayout(new BorderLayout()); //设置布局管理器
mainForm.addComponent(BorderLayout.CENTER, new Label(“Hello,World”)); //添加Components组件,
mainForm.ateFade(400)); //设置动画
mainForm.addCommand(new Command("Run", 2)); //添加菜单命令
mainForm.show(); //显示Form
•一些技巧
1:可以使用带参数的构造函数,设置标题.也可以不设置标题的构造函数
2:addComponent() 方法提供两个重载,区别在于是否指定布局位置
3:Transition动画用于在forms之间进行切换时候触发
4:Form通过Commands添加菜单,根据添加顺序排序显示,其他使用与普通的J2me一样
2。Label
Label: 可以同时显示图片和文字,设置align布局,可以通过继承Label实现扩展,如果更复杂,可以使用Button
• 提供的一些方法和使用方式
Label textLabel = new Label("I am a Label"); //创建一个单行文本
Image icon = ateImage("/images/duke.png");
Label imageLabel = new Label(icon); //创建一个带图片的Label
setTextPosition(int alignment); //设置布局方式,CENTER, LEFT, RIGHT,LEFT,TOP, BOTTOM, LEFT, RIGHT,
3。Button
Button 可以用于触发一个点击的事件Action,使用一个ActionListeners 进行监听
final Button button = new Button("Old Text");
//使用匿名的ActionListener接口实现类进行监听
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button.setText("New Text");
}});
Button继承Label, 所以可以设置不同图文混编的风格,并且提供了三种状态ollover, pressed, and the default state
4。RadioButton,ButtonGroup,CheckBox,ComboBox
•RadioButton 单选按钮,继承自Button
RadioButton radioButton = new RadioButton(“Radio Button”);
同样,也会触发action
• ButtonGroup 用于保证RadioButton只能选中一项
RadioButton rb1 = new RadioButton("First RadioButton in Group 1");
RadioButton rb2 = new
RadioButton("Second RadioButton in Group 1");
ButtonGroup group1 = new ButtonGroup();
group1.add(rb1);
group1.add(rb2);
exampleContainer.addComponent(rb1);
exampleContainer.addComponent(rb2);
这里需要注意,只需要添加addComponent(RadioButton) 到容器中,不需要添加ButtonGroup,只用于后台管理
• CheckBox 多选框,不需要添加到group中,同样也触发事件
final CheckBox checkBox = new CheckBox(“Check Box”);
通过checkBox.isSelected() 判断是否被选中
• ComboBox 列表,只允许一个被选中,多用于空间有限时候提供多选项的单选功能
创建需要一个数组作为数据源
String[] content = { "Red", "Blue", "Green", "Yellow" };
ComboBox comboBox = new ComboBox(content); //创建一个Combox,在这个构造函数中也是使用List实现
comboBox.setListCellRenderer(new checkBoxRenderer()); //设置renderer 渲染器
也可以使用addActionListener注册事件
通过实现不同的renderer接口可以给组件提供不同的显示效果 implements ListCellRenderer
5。TextArea
•例子
TextArea textArea = new TextArea(5, 20, TextArea.NUMERIC);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论