本文来自:http://blog.csdn.net/hellogv/ ,转载必须注明出处!本文的源代码,已放到 http://download.csdn.net/user/hellogv 供大家下载!
首先,想让大家看看九宫图实现之后的界面:
本文所用的代码,是来自LWUIT所提供的Sample例子,但是对例子做出以下修改:
1.设计自主的res资源文件
2.把builde.xml里面的<target name="post-compile"> 。。。。。</target> 删除
3.把所用的res文件放到一个名为res的文件夹,并与源代码放在一起
4.把ResourceBuilder.jar也删除,util文件夹里的ResourceBuilder.jar绝对不能删,是用于设计res文件
针对以上4点,说明一下为什么这么做:
原Sample例子的res文件,是使用util文件夹里的ResourceEdit.exe设计,而且还在builde.xml中使用ResourceBuilder.jar再重新生成一次res文件并与源文件组合,这显然有点冗余,因为直接用ResourceEdit.exe设计的res文件放到源文件目录里即可。也许Sample作者直接使用ANT编译或者是其他IDE要求,本文所用的IDE为netbeans。
OK,接下来就是源代码修改了,Sample源代码可是写得很长很长,要看也得花不少时间,但是,我保证大家看完后一定领略到JAVA大牛的编程功力之深!!!为了方便以后使用,所以我把Sample中实现九宫图和一些小操作的代码保留,其他都去掉了,请JAVA大牛切勿见笑哈。
以下给出关键代码:
-
-
packagecom.sun.lwuit.uidemo;
-
importcom.sun.lwuit.Button;
-
importcom.sun.lwuit.animations.CommonTransitions;
-
importcom.sun.lwuit.Command;
-
importcom.sun.lwuit.Component;
-
importcom.sun.lwuit.Dialog;
-
importcom.sun.lwuit.Display;
-
importcom.sun.lwuit.Form;
-
importcom.sun.lwuit.Image;
-
importcom.sun.lwuit.Label;
-
importcom.sun.lwuit.animations.Transition;
-
importcom.sun.lwuit.animations.Transition3D;
-
importcom.sun.lwuit.events.ActionEvent;
-
importcom.sun.lwuit.events.ActionListener;
-
importcom.sun.lwuit.events.FocusListener;
-
importcom.sun.lwuit.layouts.GridLayout;
-
importcom.sun.lwuit.plaf.Style;
-
importcom.sun.lwuit.plaf.UIManager;
-
importcom.sun.lwuit.util.Resources;
-
publicclassUIDemoMIDletextendsjavax.microedition.midlet.MIDletimplementsActionListener{
-
privatestaticfinalCommandexitCommand=newCommand("Exit",1);
-
privateString[]btn_name=newString[]{
-
"Image1","Image2","Image3","Image4","Image5","Image6","Image7",
-
"Image8","Image9"
- };
-
privatestaticTransitioncomponentTransitions;
-
privatestaticFormmainMenu;
-
privateintcols;
-
privateintelementWidth;
-
protectedvoidstartApp(){
-
try{
-
Display.init(this);
-
Resourcesr=Resources.open("/res/resources.res");
- setMainForm(r);
-
}catch(Throwableex){
- ex.printStackTrace();
-
Dialog.show("Exception",ex.getMessage(),"OK",null);
- }
- }
-
protectedvoidpauseApp(){
- }
-
protectedvoiddestroyApp(booleanarg0){
- }
-
publicstaticvoidsetMenuTransition(Transitionin,Transitionout){
- mainMenu.setMenuTransitions(in,out);
- UIManager.getInstance().getLookAndFeel().setDefaultMenuTransitionIn(in);
- UIManager.getInstance().getLookAndFeel().setDefaultMenuTransitionOut(out);
- }
-
publicstaticvoidsetComponentTransition(Transitiont){
- componentTransitions=t;
-
mainMenu.setSmoothScrolling(false);
- }
-
publicstaticTransitiongetComponentTransition(){
-
returncomponentTransitions;
- }
-
publicstaticvoidbackToMainMenu(){
- mainMenu.refreshTheme();
- mainMenu.show();
-
- System.gc();
- System.gc();
- }
-
privatevoidsetMainForm(Resourcesr){
-
-
UIManager.getInstance().setThemeProps(r.getTheme("businessTheme"));
-
mainMenu=newMainScreenForm("LWUITDemo");
-
intwidth=Display.getInstance().getDisplayWidth();
-
elementWidth=0;
-
-
mainMenu.setTransitionOutAnimator(CommonTransitions.createSlide(CommonTransitions.SLIDE_HORIZONTAL,false,500));
-
mainMenu.setTransitionInAnimator(CommonTransitions.createSlide(CommonTransitions.SLIDE_HORIZONTAL,true,500));
-
UIDemoMIDlet.setComponentTransition(Transition3D.createCube(600,false));
-
-
Image[]selectedImages=newImage[btn_name.length];
-
Image[]unselectedImages=newImage[btn_name.length];
-
for(inti=0;i<btn_name.length;i++){
-
- selectedImages[i]=r.getImage(btn_name[i]);
-
- unselectedImages[i]=r.getImage(btn_name[i]);
-
finalButtonbutton=newButton(btn_name[i],unselectedImages[i])
- {
-
publicImagegetPressedIcon(){
- Imagei=getIcon();
-
returni.scaled((int)(i.getWidth()*0.8),(int)(i.getHeight()*0.8));
- }
- };
- button.setRolloverIcon(selectedImages[i]);
- Styles=button.getStyle();
-
s.setBorder(null);
-
s.setBgTransparency(0);
-
s.setBgSelectionColor(0xffffff);
- button.setAlignment(Label.CENTER);
- button.setTextPosition(Label.BOTTOM);
- mainMenu.addComponent(button);
-
button.addActionListener(this);
-
-
button.addFocusListener(newFocusListener(){
-
publicvoidfocusGained(Componentcmp){
-
if(componentTransitions!=null){
- mainMenu.replace(button,button,componentTransitions);
- }
- }
-
publicvoidfocusLost(Componentcmp){}
- });
- elementWidth=Math.max(button.getPreferredW(),elementWidth);
- }
- cols=width/elementWidth;
-
introws=btn_name.length/cols;
-
mainMenu.setLayout(newGridLayout(rows,cols));
- mainMenu.addCommand(exitCommand);
-
mainMenu.setCommandListener(this);
- mainMenu.show();
- }
- /**
- *控件处理函数
- */
-
publicvoidactionPerformed(ActionEventevt){
-
try{
- Commandcmd=evt.getCommand();
-
if(cmd.getCommandName().equals("Exit"))
- notifyDestroyed();
-
}catch(Exceptione)
- {
-
Stringsel_button=((Button)(evt.getSource())).getText();
-
if(sel_button.equals("Image1"))
-
newAnimationDemo().form.show();
-
elseif(sel_button.equals("Image2"))
-
newPaintingDemo().form.show();
-
elseif(sel_button.equals("Image3"))
-
newLayoutDemo().form.show();
- }
- }
- }
好了,本文就介绍到这里,关于J2ME LWUIT的摸索还在继续,希望大家多多支持LWUIT,让它越做越好!
分享到:
相关推荐
J2ME手机游戏实例之--俄罗斯方块
J2ME lwuit实现屏幕九宫图,功能十分强大
使用Netbeans 利用LWUIT开源GUI实现手机上类似IPhone的九宫图,效果很不错,代码经过精简,建议使用!
j2me----api j2me----api j2me----api j2me----api j2me----api j2me----api j2me----api j2me----api j2me----api j2me----api
J2ME游戏源码---泡泡堂,想学习游戏开发的来看看吧。
J2ME的KVM-KNI-资料J2ME的KVM-KNI-资料J2ME的KVM-KNI-资料J2ME的KVM-KNI-资料
J2ME重装机兵学习--附原代码和发部文件 J2ME重装机兵学习--附原代码和发部文件 J2ME重装机兵学习--附原代码和发部文件
J2ME游戏源码---bubble breaker,快来看看吧。
扫雷(2)是在扫雷(1)的基础上增加 完善了部分代码基本逻辑不变! 使得游戏更好玩了,代码两也增加到400行,比较适合初学者,可读性强,有详尽的代码注释。 数字键1标红旗,不确定,取消标记。...
基于J2ME的Java游戏--五子棋的开发
作者:雷神 QQ:38929568 QQ群:28048051JAVA游戏编程(满) 28047782(满) 50761834(忙) 31572546(新) 手机游戏开发职业群51871468(,非从事手机开发者勿进!欢迎测试策划美工程序) <br>声明:本人...
终于找到了一个能在J2ME 上面用的了 J2me AES 加密解密 crypto-aes
这是一个J2ME 毕业设计源程序--躲箱子,供毕业设计的兄弟参考
j2me手机游戏开发基础
2014年基于J2ME的Java游戏--扑克豪斯的开发毕业设计论文-免费.doc
J2ME----CSDN名士---陈跃峰老师讲课代码 J2ME----CSDN名士---陈跃峰老师讲课代码
JAVA J2ME 手机游戏开发实例 自己做的,简单易懂,代码量很少。。仅作学习使用
安卓手机上的j2me模拟器 可导入本地jar文件 可模拟Java手机(比如塞班)用的软件 可以体验以前的手机操作
j2me_wireless_toolkit-2_2-windows 由于附件不能超过10M,只好分两部分发了
j2me_wireless_toolkit-2_0-zh.zip j2me wtk