大家都知道。设计一个好的软件,无非是要求程序稳定,可扩展,可修改跟可移值。在没有出现j2me之前,写手机程序是一件很痛苦的事情。因为你要针对很多的机型进行设计,因此导致了很少人会去涉及。因为设计这样的程序对程序员来说是个挑战。现在不同了。有了j2me使开放手机软件变的容易,而且很快乐。
定义一个与平台无关的各个参数的类,比如把按键的键值放在这里。这样以后修改起来就很方便。
/**
* Provides platform dependent settings for Sun WTK platform
* 提供初始化获取手机屏幕的高,宽等。
* 注意Nokia平台还是需要调用sizeChange方法重新获取。
* @author Greg Gridin
*/
public class Platform extends Canvas {
static public final byte PLATFORM_BARTEO = 1;
static public final byte PLATFORM_LG = 2;
static public final byte PLATFORM_MOTOROLA = 3;
static public final byte PLATFORM_MOTOROLA_V = 4;
static public final byte PLATFORM_NOKIA = 5;
static public final byte PLATFORM_NOKIA_30 = 6;
static public final byte PLATFORM_SIEMENS = 7;
static public final byte PLATFORM_SAMSUNG = 8;
static public final byte PLATFORM_SONYERICSSON = 9;
static public final byte PLATFORM_SUN_WTK = 10;
static public final byte PLATFORM = PLATFORM_SUN_WTK;
/**
* The width in pixels of a screen
*/
public static int WIDTH;
/**
* The height in pixels of a screen
*/
public static int HEIGHT;
/**
* Indicated whether the phone has hardware support for double buffering for
* screen painting
*/
public static final boolean DOUBLE_BUFFER = true;
/**
* "No-key" key code
*/
public static final int KEY_UNDEFINED = 0;
public static final int KEY_FULL_MODE = 48;
/**
* Key code for the UP game action.
*/
public static final int KEY_UP = -1;
/**
* Key code for the LEFT game action.
*/
public static final int KEY_LEFT = -3;
/**
* Key code for the RIGHT game action.
*/
public static final int KEY_RIGHT = -4;
/**
* Key code for the DOWN game action.
*/
public static final int KEY_DOWN = -2;
/**
* Key code for the FIRE game action.
*/
public static final int KEY_FIRE = -5;
/**
* Key code for left soft key
*/
public static final int KEY_SOFT_LEFT = -6;
/**
* Key code for right soft key
*/
public static final int KEY_SOFT_RIGHT = -7;
/**
* Key code for PHONE_ON key (green button)
*/
public static final int KEY_PHONE_ON = -10;
/**
* Key code for PHONE_OFF key (red button)
*/
public static final int KEY_PHONE_OFF = -11;
/**
* Key code for CLEAR key
*/
public static final int KEY_CLEAR = -8;
/**
* Key code for VOLUME UP key
*/
public static final int KEY_VOLUME_UP = KEY_UNDEFINED;
/**
* Key code for VOLUME DOWN key
*/
public static final int KEY_VOLUME_DOWN = KEY_UNDEFINED;
/**
* Key code for "fictitious" ENTER key Some phones does not have FIRE
* button, we have to find out the replacement
*/
public static final int KEY_ENTER = KEY_FIRE;
public static final int KEY_PAGEUP = 42;
public static final int KEY_PAGEDOWN = 35;
public static final int REFRESH = 53;
protected void paint(Graphics g) {
}
static {
Canvas dummy = new Canvas() {
public void paint(Graphics g) {
}
/** 当整个屏幕大小改变时候,通知其他屏幕,屏幕大小改变了 **/
protected void sizeChanged(int w, int h) {
if(h>HEIGHT){
WIDTH = w;
HEIGHT = h;
}
}
};
dummy. setFullScreenMode(true);
//不知道为什么这里总是不能修正高度
if(dummy.getHeight() > HEIGHT){
WIDTH = dummy.getWidth();
HEIGHT = dummy.getHeight();
}
dummy = null;
//System.out.println("配置正确!");
}
public final static long getTotalMemory(){
long memory = Runtime.getRuntime().totalMemory();
return memory;
}
public final static long getfreeMemory(){
long memory = Runtime.getRuntime().freeMemory();
return memory;
}
} // class
/**
* The colors available to midlets.
* 定义一些常用颜色配置
*
*/
public class Color {
/**
* "Transparent" color. This color is valid for Motorola handsets, but may not apply for all phones.
*/
public static final int TRANSPARENT = 0xFFFFFFFF;
/**
* The color white.
*/
public static final int WHITE = 0xFEFEFE;
/**
* The color dark gray.
*/
public static final int DK_GRAY = 0x555555;
/**
* The color black.
*/
public static final int BLACK = 0x000000;
} // class Color
/**
* Sets the style for the application.
* This style is blue/white/black for color screens
*
* @author Greg Gridin
*/
public class Style {
/**
* Plain style small size font
*/
public static final Font PLAIN_SMALL =
Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_SMALL);
/**
* Plain style medium size font
*/
public static final Font PLAIN_MEDIUM =
Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_MEDIUM);
/**
* Plain style large size font
*/
public static final Font PLAIN_LARGE =
Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_LARGE);
/**
* Bold style small size font
*/
public static final Font BOLD_SMALL =
Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_SMALL);
/**
* Bold style medium size font
*/
public static final Font BOLD_MEDIUM =
Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_MEDIUM);
/**
* Bold style large size font
*/
public static final Font BOLD_LARGE =
Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_LARGE);
/**
* Default font to use for text
*/
public final static Font TEXT_FONT = PLAIN_SMALL;
/**
* Default font to use for header text
*/
public final static Font HEADER_FONT = BOLD_SMALL;
/**
* Default font to use for soft key text
*/
public final static Font SOFTKEY_FONT = BOLD_SMALL;
/**
* Default font to use for text fields
*/
public final static Font TEXT_FIELD_FONT = TEXT_FONT;
/**
* Default color for texts
*/
public static final int TEXT_COLOR = Color.BLACK;
/**
* Color to use for component borders (example: textfield component)
*/
public static final int BORDER_COLOR = Color.BLACK;
/**
* Default color for focused backgrounds
*/
public static final int FOCUSED_BACKGROUND_COLOR = Color.DK_BLUE;
/**
* Default color for focused texts
*/
public static final int FOCUSED_TEXT_COLOR = Color.WHITE;
/**
* Default color for cursor
*/
public static final int CURSOR_TEXT_COLOR = Color.BLACK;
/**
* Default color for cursor background
*/
public static final int CURSOR_BACKGROUND_COLOR = Color.WHITE;
/**
* Default color for scrollbar arrows
*/
public static final int ARROW_COLOR = Color.BLACK;
/**
* Default color for screen title background
*/
public static final int TITLE_BACKGROUND_COLOR = Color.LT_BLUE;
/**
* Default color for screen title text
*/
public static final int TITLE_TEXT_COLOR = Color.BLACK;
/**
* Default color for SoftKeyBar background
*/
public static final int SOFTKEYBAR_BACKGROUND_COLOR = Color.LT_BLUE;
/**
* Default color for SoftKeyBar text
*/
public static final int SOFTKEYBAR_TEXT_COLOR = Color.BLACK;
/**
* Vertical gap, in pixels, between components
*/
public static final int V_GAP = 1;
/**
* Horizontal gap, in pixels, between components
*/
public static final int H_GAP = 1;
/**
* Custom fields horizontal gap, in pixels, between block and separator
*/
public static final int CF_H_GAP = 1;
/**
* Default background color
*/
public static final int BACKGROUND_COLOR = Color.TRANSPARENT;
/**
* Type of text fields
*/
public static final boolean SCROLLABLE_TEXTFIELD = true;
private Style() {
}
} // class Style
以上是本人经过互联网学习,上面的一些代码出自一些开源的。
大家可以按照需要修改。共同学习。
分享到:
相关推荐
基于低级界面的j2me UI库类,有demo和源码。高级界面的东西虽然好用但是在不同的手机上面显示得不一样,有的好看有的很丑,但是基于低级界面的就不一样了。在不同手机上显示出来都是一样的,这个UI库类是企业级的。...
"J2ME开发.pdf"可能包含J2ME的详细教程或者最佳实践,涵盖从基础语法到高级特性的讲解,包括UI设计(如Form和Canvas类)、数据持久化(RecordStore)、网络编程(HttpConnection和Socket)以及事件处理等。...
J2ME高级UI设计涉及到多个方面,从触摸屏操作到自定义组件的开发,再到资源管理和性能优化。掌握这些技术,开发者可以构建出功能强大、交互性好且具有吸引力的移动应用。通过学习和实践,开发者能够不断提升自己的...
在J2ME开发中,由于资源限制,原生的UI组件可能无法满足开发者对美观和交互性的需求,而LWUIT正好解决了这个问题。这个例子很可能是展示如何利用LWUIT的各种特性来创建高效、有吸引力的界面。 **描述中的“制作漂亮...
MIE J2ME UI库 v1.0 说明: MIE UI库(下简称MIE)是一个开源的手机(J2ME)GUI编程框架,与PC电脑上的AWT/Swing/SWT有相似的用处。 MIE提供了一套基本的UI组件,包括文本标签、文本框、文本域、按钮、单选框、复选框...
Java 2 Micro Edition (J2ME) 是一种用于开发小型设备和嵌入式系统的 Java 平台,如手机、智能手表或家用电器等。在 J2ME 中,用户界面(UI)的创建对于提供良好的用户体验至关重要。 Lightweight User Interface ...
**J2ME+UI框架LWUIT开发手册** 在移动设备技术发展早期,Java 2 Micro Edition(J2ME)是开发嵌入式系统和移动设备应用的主要平台。其中, Lightweight User Interface Toolkit(LWUIT)是Oracle公司推出的一个开源...
**eSWT (Embedded Standard Widget Toolkit) 是一个专为J2ME(Java 2 Micro Edition)平台设计的用户界面框架,旨在提供更丰富、更接近原生应用的UI体验。** **eSWT 的出现主要源于以下几个原因:** 1. **作为...
EasyMF 是一个 J2ME 开发框架,目标是设计一个简单、稳定、可快速开发的 J2ME 开发框架。它简化了 UI 设计、RMS 操作、日志框架、联网框架、通用工具设计等多个方面。EasyMF 的功能列表包括 UI 框架、日志框架、RMS ...
本教程首先介绍了 j2me 开发体系,然后深入各个MIDP2.0 API,最后是搭建平台的知识。 第一章 “J2ME 技术概述”让你在学习J2ME 以前知道什么是J2ME。本章介绍了J2ME 平 台的体系结构和MIDlet 生命周期的概念。为以后...
本指南旨在帮助开发者理解 S60 平台上 J2ME 应用程序 UI 设计的核心原则和技术细节,确保所开发的应用程序能够提供一致且优质的用户体验。 #### 目标读者 - 面向具有 J2ME 开发经验的软件工程师。 - 针对希望了解或...
总的来说,LWUIT是J2ME开发中不可或缺的工具,它极大地提高了UI开发的效率和质量。通过熟练掌握LWUIT,开发者能够为Java ME平台创建出具备高级UI特性的移动应用,吸引更多的用户,并提升应用的整体品质。而文档中的...
Java 2 Micro Edition(j2ME)是Oracle公司推出的用于开发和部署在小型设备、移动设备以及嵌入式系统上的应用程序的平台。它以其轻量级、跨平台的特性,成为了早期手机游戏开发的重要工具。本教程将深入探讨j2ME游戏...
基于J2ME技术的嵌入式系统的开发是一个融合了现代通信技术、计算机科学与嵌入式系统技术的综合性课题。J2ME(Java 2 Platform, Micro Edition)作为Sun Microsystems推出的一种面向小型设备和消费类电子产品的Java...
4. **用户界面(UI)组件**:J2ME提供了一些基础的UI组件,如Canvas(画布)用于自定义绘图,Displayable(显示元素)作为UI的基本单位,ChoiceGroup(选择组)和TextBox(文本框)用于用户输入。 5. **网络通信**...
**J2ME高级UI编程源码详解** J2ME(Java 2 Micro Edition)是Java平台...通过深入研究"Example02"源码,开发者不仅可以学习到J2ME UI设计的基本原理,还能掌握高级UI编程技巧,从而提升自身在移动设备应用开发的能力。
基于J2ME的手机模拟系统开发,毕业设计的原版资料
j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发
EclipseME是专门为J2ME开发设计的一个Eclipse插件,它提供了一系列方便开发者的功能,如模拟器、设备管理等。在Eclipse中,点击"Help" -> "Software Updates" -> "Find and Install...",选择"Search for new ...