hellogv的专栏
技术牛不一定能成功,关键是有好的想法,并且能够把想法实现才叫成功!
登录
注册
全站
当前博客
空间
博客
好友
相册
留言
J2ME GUI实战之四 ----------LWUIT的Button使用以及窗体布局
收藏
本文来自:http://blog.csdn.net/hellogv/ ,转载必须注明出处!
BorderLayout,就是把窗体布局分成东、南、西、北、中这5部分
//BoxLayout-X,就是把控件从左往右排列
//BoxLayout-Y,就是把控件从上往下排列
//FlowLayout,就是把控件按行排列,一行装不下则放到第二行......
//GridLayout,这就是实现九宫图的排列方式!!!!!
LWUIT要求使用Form和任何控件,都要设置窗体布局。OK,现在回顾一下以前所实现的九宫图,其原理是这样:九宫图本质就是九个按钮按照
GridLayout排列,并且按钮附带图标,而且按钮获得焦点(按钮切换)时,会显示特效。
用过J2SE GUI的朋友,应该对这些不陌生,没接触过J2SE GUI的朋友也许需要一点时间消化一下。
OK,以下代码同样修改自Sample例子里面的,多余的话就不说了:
/*
* Copyright ?2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*
*/
package
com.sun.lwuit.uidemo;
import
com.sun.lwuit.Button;
import
com.sun.lwuit.Form;
import
com.sun.lwuit.events.ActionEvent;
import
com.sun.lwuit.events.ActionListener;
import
com.sun.lwuit.layouts.BorderLayout;
import
com.sun.lwuit.layouts.BoxLayout;
import
com.sun.lwuit.layouts.FlowLayout;
import
com.sun.lwuit.layouts.GridLayout;
/**
*本例演示如何布局窗体控件
*/
public
class
LayoutDemo
implements
ActionListener {
public
Form form =
new
Form(
"LayoutDemo"
);
private
Button border;
private
Button boxY;
private
Button boxX;
private
Button flow;
private
Button grid;
LayoutDemo(){
form.setLayout(
new
BoxLayout(BoxLayout.Y_AXIS));
//BorderLayout,就是把窗体布局分成东、南、西、北、中这5部分
border =
new
Button(
"BorderLayout"
);
//顾名思义,设置按钮背景的透明度,范围0~255,可以用Util的资源编辑器来预先修改
border.getStyle().setBgTransparency(
100
);
//每个button都需要设计监听事件
border.addActionListener(
this
);
//BoxLayout-Y,就是把控件从上往下排列
boxY =
new
Button(
"BoxLayout-Y"
);
boxY.getStyle().setBgTransparency(
100
);
boxY.addActionListener(
this
);
//BoxLayout-X,就是把控件从左往右排列
boxX =
new
Button(
"BoxLayout-X"
);
boxX.getStyle().setBgTransparency(
100
);
boxX.addActionListener(
this
);
//FlowLayout,就是把控件按行排列,一行装不下则放到第二行......
flow =
new
Button(
"FlowLayout"
);
flow.getStyle().setBgTransparency(
100
);
flow.addActionListener(
this
);
//GridLayout,这就是实现九宫图的排列方式!!!!!
grid =
new
Button(
"GridLayout"
);
grid.getStyle().setBgTransparency(
100
);
grid.addActionListener(
this
);
addComponents(form);
form.show();
}
private
void
addComponents(
final
Form f){
f.removeAll();
f.addComponent(boxY);
f.addComponent(boxX);
f.addComponent(border);
f.addComponent(flow);
f.addComponent(grid);
}
public
void
actionPerformed(ActionEvent arg0) {
String button_name=((Button)(arg0.getSource())).getText();
if
(button_name.equals(
"BorderLayout"
))
{
form.setLayout(
new
BorderLayout());
form.removeAll();
form.setScrollable(
false
);
form.addComponent(BorderLayout.NORTH, border);
form.addComponent(BorderLayout.EAST, boxY);
form.addComponent(BorderLayout.CENTER, grid);
form.addComponent(BorderLayout.WEST, flow);
form.addComponent(BorderLayout.SOUTH, boxX);
form.show();
}
else
if
(button_name.equals(
"BoxLayout-Y"
))
{
form.setLayout(
new
BoxLayout(BoxLayout.Y_AXIS));
form.setScrollable(
false
);
addComponents(form);
form.show();
}
else
if
(button_name.equals(
"FlowLayout"
))
{
form.setLayout(
new
FlowLayout());
form.setScrollable(
false
);
addComponents(form);
form.show();
}
else
if
(button_name.equals(
"GridLayout"
))
{
form.setLayout(
new
GridLayout(
3
,
2
));
form.setScrollable(
false
);
addComponents(form);
form.show();
}
else
if
(button_name.equals(
"BoxLayout-X"
))
{
form.setLayout(
new
BoxLayout(BoxLayout.X_AXIS));
form.setScrollable(
true
);
addComponents(form);
form.show();
}
}
}
发表于 @
2008年09月15日 10:33:00
|
评论(
loading...
)
|
收藏
新一篇: J2ME GUI实战之五 ----------LWUIT的绘图功能
|
旧一篇: J2ME GUI实战之三 ----------LWUIT实现切换特效
用户操作
[即时聊天]
[发私信]
[加为好友]
张国威
订阅我的博客
张国威的公告
文章分类
C++ Builder专栏
Delphi专栏
J2ME专栏
Lazarus专栏
Linux专栏
WINCE/PC(VC++)专栏
加密解密专栏
凌阳61A单片机
日志
收藏
LAZARUS
lazarus Roadmap
精彩一刻,不容错过!
专访2008全国大学生信息安全竞赛一等奖获得者 张国威
编程狂人:没比赛会很空虚未毕业猎头纷至
存档
2009年06月(2)
2009年03月(1)
2009年01月(3)
2008年12月(7)
2008年11月(2)
2008年09月(9)
2008年07月(1)
2008年06月(5)
2008年05月(2)
2008年04月(1)
2008年03月(1)
2008年02月(1)
2008年01月(1)
2007年12月(2)
2007年11月(6)
2007年10月(1)
2007年09月(1)
2007年07月(3)
2007年06月(4)
2007年03月(1)
2007年02月(13)
软件项目交易