本文来自: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 LWUIT 之九宫图”指的是使用LWUIT库在J2ME平台上实现一个类似于iPhone上的九宫格布局的界面。九宫图通常是一种常见的布局方式,用于展示多个相互关联的小模块或应用图标,用户可以通过点击这些图标来启动...
标题中的"lwuit.rar_J2ME lwuit_LWUIT_j2me_j2me LWU_九宫"表明这是一个与LWUIT相关的压缩包,内容可能包含了实现J2ME平台上九宫图功能的代码或资源。 九宫图是一种常见的界面布局方式,通常用于显示多个小视图,如...
《J2ME手机游戏实例之--俄罗斯方块》 Java Micro Edition(J2ME)是Java平台的一个子集,主要用于嵌入式设备和移动设备,如早期的智能手机。本实例将探讨如何使用J2ME开发经典游戏——俄罗斯方块。在手机上实现这个...
j2me----api j2me----api j2me----api j2me----api j2me----api j2me----api j2me----api j2me----api j2me----api j2me----api
J2ME是Java平台的一个子集,专为资源有限的移动设备如手机、PDA等设计,因此在移动游戏开发领域有着广泛的应用。 在这款泡泡堂游戏中,我们可以学习到以下几个关键知识点: 1. **J2ME架构**:了解J2ME的基本结构,...
在“JAVA游戏编程之三----j2me 手机游戏入门开发--俄罗斯方块_4_增加消除行声音”这个主题中,我们将学习如何在已有的游戏基础上加入消除行时的声音反馈,让游戏体验更加生动有趣。 首先,了解基本的J2ME编程是必要...
Java 2 Micro Edition(J2ME)是Java平台的一个子集,主要用于开发在移动设备、嵌入式系统等资源有限的环境中的应用程序,特别是手机游戏。"J2ME游戏源码---bubble breaker"是一个基于J2ME的游戏项目,它是一个经典...
扫雷(2)是在扫雷(1)的基础上增加 完善了部分代码基本逻辑不变! 使得游戏更好玩了,代码两也增加到400行,比较适合初学者,可读性强,有详尽的代码注释。 数字键1标红旗,不确定,取消标记。...
J2ME_Loader-1.7.7-open-release.apk
在移动设备技术发展初期,J2ME(Java 2 Micro Edition)是用于开发移动应用程序,尤其是手机游戏的主流平台之一。本项目是一个基于J2ME技术实现的五子棋游戏,展现了开发者对Java编程语言和移动游戏开发的基本理解。...
《J2ME手机游戏实例——俄罗斯方块》 在移动设备普及的年代,J2ME(Java Micro Edition)因其跨平台特性和轻量级的特性,成为开发手机游戏的热门选择。本实例将深入探讨如何使用J2ME来实现经典游戏——俄罗斯方块。...
作者:雷神 QQ:38929568 QQ群:28048051JAVA游戏编程(满) 28047782(满) 50761834(忙) 31572546(新) 手机游戏开发职业群51871468(,非从事手机开发者勿进!欢迎测试策划美工程序) <br>声明:本人...
终于找到了一个能在J2ME 上面用的了 J2me AES 加密解密 crypto-aes
j2me手机游戏开发基础
6. **资源管理**:游戏可能使用了图片或其他资源,学习如何在J2ME中加载和管理这些资源,例如使用Image类加载图片。 7. **调试与测试**:掌握如何在模拟器或真实设备上进行测试和调试,确保游戏在不同设备上的兼容...
在本文中,我们将深入探讨如何使用J2ME(Java 2 Micro Edition)和LUA脚本语言进行手机游戏开发,以实现一个经典的俄罗斯方块游戏。J2ME是一种轻量级的Java平台,广泛用于移动设备,如早期的智能手机和平板电脑。LUA...
安卓手机上的j2me模拟器 可导入本地jar文件 可模拟Java手机(比如塞班)用的软件 可以体验以前的手机操作
j2me_wireless_toolkit-2_2-windows 由于附件不能超过10M,只好分两部分发了
《利用J2ME制作的手机游戏——贪吃蛇》 J2ME,全称为Java Micro Edition,是Java平台的一个重要分支,主要用于嵌入式设备和移动设备上的应用程序开发,包括手机游戏。这篇博客主要探讨了如何使用J2ME技术来制作经典...