布局管理器中一个比较特殊的管理器
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();
- 大小: 7.5 KB
- 大小: 18.4 KB
分享到:
相关推荐
### LWUIT布局设置详解 LWUIT(Lightweight UI Toolkit),作为Java ME平台上的图形用户界面工具包,提供了丰富的UI组件以及灵活的布局管理机制,极大地便利了开发者在移动设备上构建美观且功能丰富的应用程序。...
1. **组件库**:LWUIT提供了丰富的组件集合,如按钮、文本框、标签、列表、表格等,这些组件可以方便地进行布局管理和定制,以满足各种界面需求。 2. **样式表支持**:LWUIT允许开发者使用CSS(层叠样式表)来定义...
在LWUIT中,可以使用布局管理器来安排组件的位置,9宫格布局是一种常见的界面设计,常用于展示图片、按钮或其他交互元素的网格。 知识点详解: 1. **LWUIT组件**:LWUIT提供了丰富的UI组件,如按钮、文本框、标签...
2. **布局管理**:使用LWUIT的布局管理器,如GridLayout,来控制九个子组件在容器中的位置和大小。 3. **事件处理**:为每个宫格添加点击事件监听器,以便在用户点击时触发相应的操作,如切换显示内容。 4. **动画...
2. **创建Display对象**:LWUIT的显示系统由Display类管理,你需要创建一个Display实例来启动和控制应用程序的生命周期。 3. **设计UI组件**:利用LWUIT的组件,如Button、Label、Form等,创建UI布局。可以使用...
5. **布局管理器**:LWUIT 内置了多种布局管理器,如网格布局、流式布局等,帮助开发者合理安排组件的位置和大小,适应不同屏幕尺寸的设备。 6. **动画与过渡效果**:LWUIT 允许开发者添加平滑的动画效果,如淡入...
开发者可以通过研究这些源代码,学习如何初始化LWUIT环境,创建和布局UI组件,处理用户事件,以及自定义组件样式等。 在标签中提到了"demo j2me",这表明这个示例是针对J2ME平台的。J2ME是Java的一个子集,主要用于...
- **Layout管理器**:LWUIT提供了一些布局管理器,如FlowLayout、BoxLayout和GridBagLayout等,它们负责组件在容器中的排列和对齐。 - **Form类**:作为LWUIT中的主要容器,Form通常用于承载多个组件和布局,是构建...
LWUIT 提供了丰富的组件、布局管理器和主题功能,使得开发者可以轻松地设计出美观且响应迅速的界面。 **标题“LWUIT j2me UI例子”** 暗示我们将探讨使用LWUIT库在J2ME环境中创建用户界面的具体实例。在J2ME开发中...
在实际开发过程中,LWUIT的布局管理器也扮演着关键角色。它们负责控制组件在屏幕上的排列和大小,比如FlowLayout、GridLayout、BorderLayout等,每种布局都有其特定的应用场景,开发者可以根据需求选择合适的布局。 ...
总的来说,"Hello LWUIT"是学习LWUIT基础的一个很好的起点,它涵盖了LWUIT的基本概念、组件使用、事件处理、布局管理和主题定制等方面,为后续深入学习和实践奠定了基础。通过这个简单的示例,开发者将对LWUIT有一个...
4. **组件布局管理**:LWUIT使用布局管理器来控制组件在屏幕上的排列方式。源码可能包含对不同布局管理器(如BorderLayout、FlowLayout、BoxLayout等)的使用,以适应不同类型的界面设计需求。 5. **动画效果**:...
LWUIT提供了几种内置的布局管理器,如BoxLayout、GridLayout和FlowLayout,开发者可以选择合适的布局来实现九宫格布局。在这个案例中,GridLayout是最合适的,因为它可以方便地将组件排列成网格状。 为了实现九宫格...
5. **布局管理**:LWUIT提供了多种布局管理器,如`FlowLayout`、`BorderLayout`、`GridLayout`等,用于控制组件在屏幕上的排列方式。开发者需要根据应用需求选择合适的布局管理器,使UI界面美观且易于使用。 6. **...
6. **布局管理**:LWUIT 内置了多种布局管理器,如 FlowLayout、BorderLayout 和 GridLayout 等,帮助开发者快速组织和定位组件。 7. **国际化与本地化**:LWUIT 支持多语言,方便开发者为全球用户提供适合的语言...
- **布局管理器**:LWUIT提供多种布局管理器,如FlowLayout、BorderLayout、GridBagLayout等,便于组织和排列组件。 3. **LWUIT 1.4的新特性与改进** - **性能优化**:1.4版本在渲染速度和内存使用上做了进一步...
5. **布局管理**:LWUIT包含多种布局管理器,如FlowLayout、GridLayout和BoxLayout,可以帮助组织和排列组件。 6. **动画**:LWUIT支持丰富的动画效果,包括淡入淡出、滑动、旋转等,使UI更具动态感。 7. **国际化...
例如,LWUIT提供了几种布局管理器,如`BoxLayout`、`GridBagLayout`和`FlowLayout`,它们分别对应不同的布局策略,帮助开发者组织和调整组件的位置。 “MobileLibrary1”可能是这个销售系统示例的项目名称或者主...