布局管理器中一个比较特殊的管理器
CoordinateLayout以坐标的形式给容器内的控件指
定一个绝对的位置,虽然
CoordinateLayout允许我们以x/y坐标的形式放置容器内的控件,但是它并不能保证控件的位置不会改变并且它也不能决定控件的绝对位置。
CoordinateLayout只是“相对地”接收控件的位置,并根据接收到的位置计算出控件应该放置的位置。
CoordinateLayout在程序运行时,容器的有效空间总是随着字体的大小改变、屏幕的旋转而变化的。
容器中控件的坐标是由Lwuit计算出的,控件的尺寸并不要他们的
setWidth和
getHeight方法决定,而是由Lwuit最优调整计算得来的,它们的
setWidth和
getHeight方法被忽略。对于大小固定的空间可以运用
setPreferredW和
setPreferredH设置为尺寸不变;可以使用控件的
setAlignment方法设置其在容器中的对齐方式。
Display.init(this);
mainForm = new Form("CoordinateLayout");
mainForm.setLayout(new CoordinateLayout(200,200));
Label centerLabel = new Label("Center");
centerLabel.setX(90);
centerLabel.setY(90);
centerLabel.getUnselectedStyle().setBgTransparency(100);
centerLabel.getUnselectedStyle().setBgColor(0xff);
Label underCenter = new Label("Under Center");
underCenter.setX(70); //设置控件的起始位置
underCenter.setY(110);
Label top = new Label("Top Left");
top.setAlignment(Component.CENTER);
top.setX(0);
top.setY(0);
top.setPreferredW(200); //设置控件的款高度
top.setPreferredH(30);
top.getUnselectedStyle().setBgColor(0x00ff00);
mainForm.addComponent(underCenter);
mainForm.addComponent(centerLabel);
mainForm.addComponent(top);
mainForm.show();
TableLayout的容器添加控件的时候要指明BorderLayout对象的约束,例如:container.addComponent(tableConstraint,component);但这个约束可以省略,不像BorderLayout那样是必须的。
TableLayout.Constaint类的一个实例,并且只能使用一次,重复使用此实例就会抛异常,就是说在使用了TableLayout的容器中,TableLayout.Constaint实例只能对一个控件有效,其他控件必须另行创建TableLayout.Constaint实例。TableLayout.Constaint可以用来指定某一行的高度和宽度。
TableLayout会自动根据行数和列数尽量多地空间分配给控件来使得控件尺寸最优,当空间不足时,新添加进来的空间就会“挤在一块”.
注意:TableLayout中的控件尺寸默认设置为充满整个单元,可以调用Component或者Style类的相关方法来改变每个单元的对齐和填充方式。
Display.init(this);
try{
Resources res = Resources.open("/javaTheme.res");
UIManager.getInstance().setThemeProps(res.getTheme("javaTheme"));
}catch(Exception e){
e.printStackTrace();
}
mainForm = new Form("Table Layout");
TableLayout layout = new TableLayout(4,3);
mainForm.setLayout(layout);
TableLayout.Constraint constraint = layout.createConstraint();
constraint.setVerticalSpan(2); //设置第一个控件跨越2个单元
constraint.setWidthPercentage(50); //设置宽度为50%
mainForm.addComponent(constraint, new Label("First"));
mainForm.addComponent(new Label("Send"));
mainForm.addComponent(new Label("Third"));
constraint = layout.createConstraint();
constraint.setHeightPercentage(20); //设置长度度为20%
mainForm.addComponent(constraint, new Label("Fourth"));
mainForm.addComponent(new Label("Fifth"));
constraint = layout.createConstraint();
constraint.setHorizontalSpan(3); //设置第一个控件跨越3个单元
Label span = new Label("Spanning");
span.getStyle().setBorder(Border.createLineBorder(2));
span.setAlignment(Component.CENTER);
mainForm.addComponent(constraint,span);
mainForm.show();
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0024/4210/8db7e43c-9c47-3bdd-a89b-8592c8b1df9f-thumb.jpg)
- 大小: 7.5 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0024/4235/246ab17d-973f-38ad-8f55-c21b6bec5785-thumb.jpg)
- 大小: 18.4 KB
分享到:
相关推荐
LWUIT的布局设置种类,灵活性很高,方便布局各种组件
LWUIT.jarLWUIT.jarLWUIT.jarLWUIT.jarLWUIT.jarLWUIT.jar
LWUIT哦,最新的包,学习学习。非常好用哦
LWUIT类似Swing 的MVC架构, 支持多种布局(Layouts), 皮肤更换, 字体, 触摸屏, 动画效果, Rich控件, 3D集成, Painter, 模式对画框, I18N/L10N等。 Sun在2008年的JavaOne会议上向开发者社区推荐了LWUIT,展示了...
Lwuit入门程序测试一下Demo 里面需要用到LWUIT的jar包
The Lightweight UI Toolkit (LWUIT) 是一个轻量级JavaME UI工具包...LWUIT类似Swing 的MVC架构, 支持多种布局(Layouts), 皮肤更换, 字体, 触摸屏, 动画效果, Rich控件, 3D集成, Painter, 模式对画框, I18N/L10N等。
Lwuit在blackberry上的移植版本,使用subversion签下来的,我把这个从lwuit-incubator中提取出来的,里面有DOC和源码,不过它把4.2-4.7版本放在一起了,应用的时候需要根据自己项目实际进行裁剪和修改。
LWUIT类似Swing 的MVC架构, 支持多种布局(Layouts), 皮肤更换, 字体, 触摸屏, 动画效果, Rich控件, 3D集成, Painter, 模式对画框, I18N/L10N等。 Sun在今年的JavaOne会议上向开发者社区推荐了LWUIT,展示了预先...
在网上找了很久源代码,基本上都是缺胳膊少腿的,svn上1.3版的代码还处于测试阶段...官方的只通了LWUIT.jar和Demo的下载,没有源代码,我把这个LWUIT.jar反编译了一下,把反编译过后产生的错误修改好了,已经可以用了。
根据搜索翻译出来的lwuit1.4的介绍,有兴趣的朋友可以看看
LWUIT,j2me教程,LWUIT 简介 教程与文档 问答LWUIT是一个轻量级JavaME UI工具包。特性:类似Swing 的MVC架构,支持多种布局(Layouts),皮肤更换,字体,触摸屏,动画效果...
lwuit的开发文档 Hello World for MIDP import com.sun.lwuit.Display; import com.sun.lwuit.Form; import com.sun.lwuit.Label; import com.sun.lwuit.layouts.BorderLayout; import ...
lwuit1.4 jar包 lwuit1.4 jar包 lwuit1.4 jar包 lwuit1.4 jar包
lwuit demo 的源代码,基本重要的函数都在这里进行了展示
1. **LWUIT基础知识**:LWUIT的核心是它的组件库,包括按钮、表单、标签等,以及样式和主题管理。LWUIT的汉化工作对于中文环境的开发者尤其重要,因为它允许将界面元素翻译成中文,提升用户体验。Renderer在LWUIT中...
J2ME lwuit实现屏幕九宫图,功能十分强大
LWUIT类似Swing 的MVC架构, 支持多种布局(Layouts), 皮肤更换, 字体, 触摸屏, 动画效果, Rich控件, 3D集成, Painter, 模式对画框, I18N/L10N等。现在Sun把整个源代码都开放出来,更方便开发者利用LUWIT开发JavaME...
Lightweight UI Toolkit (LWUIT) 是一个轻量...LWUIT类似Swing 的MVC架构, 支持多种布局(Layouts), 皮肤更换, 字体, 触摸屏, 动画效果, Rich 使用LWUIT的应用程序界面 控件, 3D集成, Painter, 模式对画框, I18N/L10N
lwuit 1.4 api文档,lwuit 1.4 api文档。
lwuit api文档下载,lwuit api文档下载