`
wuhua
  • 浏览: 2114145 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

设计可组装的j2me UI(二) 一些系统边缘核心的开发

阅读更多
    大家都知道。设计一个好的软件,无非是要求程序稳定,可扩展,可修改跟可移值。在没有出现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



以上是本人经过互联网学习,上面的一些代码出自一些开源的。
大家可以按照需要修改。共同学习。
分享到:
评论
1 楼 为你而来 2006-11-15  
不错,过来支持一下

相关推荐

    J2me UI库类 基于低级界面

    基于低级界面的j2me UI库类,有demo和源码。高级界面的东西虽然好用但是在不同的手机上面显示得不一样,有的好看有的很丑,但是基于低级界面的就不一样了。在不同手机上显示出来都是一样的,这个UI库类是企业级的。...

    J2ME开发 J2ME开发 J2ME开发

    "J2ME开发.pdf"可能包含J2ME的详细教程或者最佳实践,涵盖从基础语法到高级特性的讲解,包括UI设计(如Form和Canvas类)、数据持久化(RecordStore)、网络编程(HttpConnection和Socket)以及事件处理等。...

    J2ME高级UI总结

    J2ME高级UI设计涉及到多个方面,从触摸屏操作到自定义组件的开发,再到资源管理和性能优化。掌握这些技术,开发者可以构建出功能强大、交互性好且具有吸引力的移动应用。通过学习和实践,开发者能够不断提升自己的...

    LWUIT j2me UI例子

    在J2ME开发中,由于资源限制,原生的UI组件可能无法满足开发者对美观和交互性的需求,而LWUIT正好解决了这个问题。这个例子很可能是展示如何利用LWUIT的各种特性来创建高效、有吸引力的界面。 **描述中的“制作漂亮...

    MIE J2ME UI库 v1.0

    MIE J2ME UI库 v1.0 说明: MIE UI库(下简称MIE)是一个开源的手机(J2ME)GUI编程框架,与PC电脑上的AWT/Swing/SWT有相似的用处。 MIE提供了一套基本的UI组件,包括文本标签、文本框、文本域、按钮、单选框、复选框...

    j2me ui lwuit 1.3

    Java 2 Micro Edition (J2ME) 是一种用于开发小型设备和嵌入式系统的 Java 平台,如手机、智能手表或家用电器等。在 J2ME 中,用户界面(UI)的创建对于提供良好的用户体验至关重要。 Lightweight User Interface ...

    J2ME+UI框架LWUIT开发手册

    **J2ME+UI框架LWUIT开发手册** 在移动设备技术发展早期,Java 2 Micro Edition(J2ME)是开发嵌入式系统和移动设备应用的主要平台。其中, Lightweight User Interface Toolkit(LWUIT)是Oracle公司推出的一个开源...

    eswt j2me ui 教程

    **eSWT (Embedded Standard Widget Toolkit) 是一个专为J2ME(Java 2 Micro Edition)平台设计的用户界面框架,旨在提供更丰富、更接近原生应用的UI体验。** **eSWT 的出现主要源于以下几个原因:** 1. **作为...

    j2me开发框架介绍

    EasyMF 是一个 J2ME 开发框架,目标是设计一个简单、稳定、可快速开发的 J2ME 开发框架。它简化了 UI 设计、RMS 操作、日志框架、联网框架、通用工具设计等多个方面。EasyMF 的功能列表包括 UI 框架、日志框架、RMS ...

    j2me 中文教程 开发环境 J2ME语言

    本教程首先介绍了 j2me 开发体系,然后深入各个MIDP2.0 API,最后是搭建平台的知识。 第一章 “J2ME 技术概述”让你在学习J2ME 以前知道什么是J2ME。本章介绍了J2ME 平 台的体系结构和MIDlet 生命周期的概念。为以后...

    nokia s60 FP1 J2ME UI develop guide

    本指南旨在帮助开发者理解 S60 平台上 J2ME 应用程序 UI 设计的核心原则和技术细节,确保所开发的应用程序能够提供一致且优质的用户体验。 #### 目标读者 - 面向具有 J2ME 开发经验的软件工程师。 - 针对希望了解或...

    lwuit.rar_J2ME ui_LWUIT_j2me

    总的来说,LWUIT是J2ME开发中不可或缺的工具,它极大地提高了UI开发的效率和质量。通过熟练掌握LWUIT,开发者能够为Java ME平台创建出具备高级UI特性的移动应用,吸引更多的用户,并提升应用的整体品质。而文档中的...

    j2ME游戏开发详解

    Java 2 Micro Edition(j2ME)是Oracle公司推出的用于开发和部署在小型设备、移动设备以及嵌入式系统上的应用程序的平台。它以其轻量级、跨平台的特性,成为了早期手机游戏开发的重要工具。本教程将深入探讨j2ME游戏...

    基于J2ME技术的嵌入式系统的开发

    基于J2ME技术的嵌入式系统的开发是一个融合了现代通信技术、计算机科学与嵌入式系统技术的综合性课题。J2ME(Java 2 Platform, Micro Edition)作为Sun Microsystems推出的一种面向小型设备和消费类电子产品的Java...

    j2me开发教程全集

    4. **用户界面(UI)组件**:J2ME提供了一些基础的UI组件,如Canvas(画布)用于自定义绘图,Displayable(显示元素)作为UI的基本单位,ChoiceGroup(选择组)和TextBox(文本框)用于用户输入。 5. **网络通信**...

    J2ME高级UI编程源码

    **J2ME高级UI编程源码详解** J2ME(Java 2 Micro Edition)是Java平台...通过深入研究"Example02"源码,开发者不仅可以学习到J2ME UI设计的基本原理,还能掌握高级UI编程技巧,从而提升自身在移动设备应用开发的能力。

    基于J2ME的手机模拟系统开发

    基于J2ME的手机模拟系统开发,毕业设计的原版资料

    j2me游戏开发 经典教程

    j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发

    j2me开发环境配置

    EclipseME是专门为J2ME开发设计的一个Eclipse插件,它提供了一系列方便开发者的功能,如模拟器、设备管理等。在Eclipse中,点击"Help" -> "Software Updates" -> "Find and Install...",选择"Search for new ...

Global site tag (gtag.js) - Google Analytics