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

J2ME UI之边框

阅读更多
今天是那个足球项目要求完工的一天,可我却连个测试文档都没写,其实也不想写.艾.日子过的真快.对工作已经开始失去了激情.不说这些了.
  今天带给大家的将是j2me UI设计的第一篇比较有用的文章,我是这么认为的.哈
  这篇文章的要说的是,UI的风格跟边框.
  多说无用,我把代码贴出来,大家看看把.^_^

package org.wuhua.ui;
import javax.microedition.lcdui.Graphics;
/**
* <b>类名:Border.java</b> </br>
* 编写日期: 2006-8-11 <br/>
* 程序功能描述:UI的边框,抽象类,具体怎么画,画什么由子类实现. <br/>
* Demo: <br/>
* Bug: <br/>
*
* 程序变更日期 :<br/>
* 变更作者 :<br/>
* 变更说明 :<br/>
*
* @author wuhua </br> <a href="mailto:rrq12345@163.com">rrq12345@163.com</a>
*/
public abstract  class Border {

protected int borderWidth;
protected int borderColor;
/**
  * 创建Border.<br/>
  * 边框宽度默认为1.<br/>
  * 边框颜色默认为黑色.<br/>
  */
public Border() {
  this.borderWidth = 2;
  this.borderColor = 0x000000;
}

public Border(int borderWidth, int borderColor) throws IllegalArgumentException {
  if(borderWidth<0)
   throw new IllegalArgumentException("BoderWidth isn't less than 0 ");
  this.borderWidth = borderWidth;
  this.borderColor = borderColor;
}

/**
  * 返回默认风格的椭圆边框
  * @return
  */
public static Border getRoundRectBorder(){
  return new RoundRectBorder();
}
/**
  * 返回指定边框大小,边框颜色的椭圆边框
  * @return
  */
public static Border getRoundRectBorder(int borderWidth, int borderColor){
  return new RoundRectBorder(borderWidth,borderColor);
}
/**
  * 返回默认风格的长方形边框
  * @return
  */
public static Border getRectBorder(){
  return new RectBorder();
}

/**
  * 返回指定边框大小,边框颜色的长方形边边框
  * @return
  */
public static Border getRectBorder(int borderWidth, int borderColor){
  return new RectBorder(borderWidth,borderColor);
}


/**
  * 绘制边框
  *
  * @param x  起始水平线x
  * @param y  起始垂直线y
  * @param width  边框的宽度
  * @param height  边框的高度
  * @param g  绘制此边框的图形
  */
public abstract void paint( int x, int y, int width, int height, Graphics g );

}

package org.wuhua.ui;
import javax.microedition.lcdui.Graphics;
/**
* <b>类名:RectBorder.java</b> </br>
* 编写日期: 2006-8-11 <br/>
* 程序功能描述:方型边框 <br/>
* Demo: <br/>
* Bug: <br/>
*
* 程序变更日期 :<br/>
* 变更作者 :<br/>
* 变更说明 :<br/>
*
* @author wuhua </br> <a href="mailto:rrq12345@163.com">rrq12345@163.com</a>
*/
public class RectBorder extends Border {
public RectBorder() {
  super();
 
}
public RectBorder(int borderWidth, int borderColor) {
  super(borderWidth,borderColor);
}
public void paint(int x, int y, int width, int height, Graphics g) {
  g.setColor( 0x5565656);
  g.setColor(borderColor);
  g.fillRect(x, y, width, borderWidth); //绘制上边框水平线
  g.fillRect(x, y,  borderWidth, height); //绘制左边框垂直线
  g.fillRect(x, height+x, width+borderWidth,  borderWidth); //绘制下边框水平线
  g.fillRect(width+y, y,   borderWidth, height); //绘制右边框垂直线
}

}


package org.wuhua.ui;
import javax.microedition.lcdui.Graphics;
/**
* <b>类名:RoundRectBorder.java</b> </br>
* 编写日期: 2006-8-11 <br/>
* 程序功能描述: 带圆角边框<br/>
* Demo: <br/>
* Bug: <br/>
*
* 程序变更日期 :<br/>
* 变更作者 :<br/>
* 变更说明 :<br/>
*
* @author wuhua </br> <a href="mailto:rrq12345@163.com">rrq12345@163.com</a>
*/
public class RoundRectBorder extends Border{

public RoundRectBorder() {
  super();
}
public RoundRectBorder(int borderWidth, int borderColor) {
  super(borderWidth,borderColor);
}

public void paint(int x, int y, int width, int height, Graphics g) {
  g.setColor(borderColor);
  int arcWidth = 0;
  int arcHeight = 0;
  //判断边框大小然后调整员角度
  if(borderWidth<=1){
   arcHeight = borderWidth+2;
   arcWidth = borderWidth +2; 
  }else{
   arcHeight = arcWidth = borderWidth+5;
  }
  g.fillRoundRect(x,y,width,height,arcWidth,arcHeight);
  g.setColor(0xFFFFFFF);
  g.fillRect(x+borderWidth,y+borderWidth,
     width-2*borderWidth, height-2*borderWidth);
}
}


package test;
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
/**
* <b>类名:Test.java</b> </br>
* 编写日期: 2006-8-11 <br/>
* 程序功能描述: 测试类<br/>
* Demo: <br/>
* Bug: <br/>
*
* 程序变更日期 :<br/>
* 变更作者 :<br/>
* 变更说明 :<br/>
*
* @author wuhua </br> <a href="mailto:rrq12345@163.com">rrq12345@163.com</a>
*/
public class Test extends MIDlet {
public Test() {
  super();
  // TODO 自动生成构造函数存根
}
protected void startApp() throws MIDletStateChangeException {
  TestCanvas test = new TestCanvas();
  Display.getDisplay(this).setCurrent(test);
}
protected void pauseApp() {
  // TODO 自动生成方法存根
}
protected void destroyApp(boolean unconditional)
   throws MIDletStateChangeException {
  // TODO 自动生成方法存根
}


}


package test;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import org.wuhua.ui.Border;
/**
* <b>类名:TestCanvas.java</b> </br>
* 编写日期: 2006-8-11 <br/>
* 程序功能描述: <br/>
* Demo: <br/>
* Bug: <br/>
*
* 程序变更日期 :<br/>
* 变更作者 :<br/>
* 变更说明 :<br/>
*
* @author wuhua </br> <a href="mailto:rrq12345@163.com">rrq12345@163.com</a>
*/
public class TestCanvas extends Canvas {
protected void paint(Graphics g) {
  //可按照自己的意思,绘制大小,颜色绘制边框
  Border b = Border.getRectBorder(3,0x7899999);// TODO 自动生成方法存根
  b.paint(5,5,70,30,g);
}

}
上面的只是边框,接下来,我会设计一些其他的东西(呵呵)
运行效果如下.


分享到:
评论
10 楼 williamcomm 2006-11-14  
cxCX
9 楼 为你而来 2006-11-14  
呵呵,原来做过一段时间的足球比分的网站,只是没有想过用手机来展示,真是一个好意思!!!
8 楼 wuhua 2006-10-16  
呵呵。谢谢。
本来这些可以很简单的写的。但涉及到重用。所以写的麻烦点
而上头也老说我写代码重用性不够,索性就来个彻底的。

这些是没经过美工的。所以。。。。。。。
7 楼 jianyu 2006-10-16  
明白了,不过俺觉得为这些个边框些这么多代码不划算。
另外,貌似这几个界面没有请专业美工设计嘛,这配色也太强烈了点
6 楼 wuhua 2006-10-16  
[img]
http://album.sina.com.cn/pic/4a17b6ad020005ws


[/img]



5 楼 wuhua 2006-10-16  
[img]
http://album.sina.com.cn/pic/4a17b6ad020005ws


[/img]



4 楼 wuhua 2006-10-16  
[img]
http://album.sina.com.cn/pic/4a17b6ad020005ws


[/img]



1 楼 jianyu 2006-10-16  
lz,这样的ui有用在什么地方?我看基本上没什么用嘛

相关推荐

    j2me ui lwuit 1.3

    在 J2ME 中,用户界面(UI)的创建对于提供良好的用户体验至关重要。 Lightweight User Interface Toolkit (LWUIT) 是一个专门针对 J2ME 平台设计的 UI 框架,它允许开发者创建丰富的、响应迅速且具有吸引力的图形...

    j2me的UI控件包

    3. **List** - List 控件是最基础的UI组件之一,用于展示一系列可选择的项。Mewt 的 List 支持单选和多选模式,可以自定义项的显示样式,同时提供了滑动滚动和平移效果,提升用户体验。开发者可以绑定数据源,使得...

    j2me里面各种漂亮进度条的制作方法

    在Java 2 Micro Edition (J2ME)平台上开发移动应用时,进度条是不可或缺的UI元素,它能够向用户展示程序执行的进度,增加用户体验。本文将深入探讨如何在J2ME中创建各种美观的进度条,并通过提供的文件名如"loading...

    J2ME界面用的九宫格菜单

    在移动应用开发领域,J2ME...总的来说,J2ME的九宫格菜单是一个实用的UI设计,它展示了如何利用J2ME的特性来创建高效、易用的移动应用界面。对于希望学习或改进J2ME界面设计的开发者来说,这是一个有价值的参考实例。

    j2me中文Api

    通过上述介绍可以看出,J2ME提供了丰富的API来支持移动设备上的应用开发,特别是针对UI展示、命令处理、多媒体支持等方面的功能。对于希望利用Java进行手机程序和游戏开发的开发者来说,掌握这些API是非常重要的。...

    lwuit.rar_J2ME lwuit_LWUIT_j2me_j2me LWU_九宫

    LWUIT( Lightweight UI Toolkit )是Java ME(J2ME)平台上的一种用户界面库,专为移动设备设计,用于创建美观且交互性强的图形用户界面。标题中的"lwuit.rar_J2ME lwuit_LWUIT_j2me_j2me LWU_九宫"表明这是一个与...

    j2me拼图游戏源码

    1. 图形绘制:利用J2ME的Graphics类进行像素级的图像绘制,包括背景、拼图块、边框等。 2. 图像处理:分割图片并生成拼图块,可能需要了解位图操作和矩阵变换。 3. 用户交互:监听键盘事件或触摸屏事件,处理用户的...

    J2ME 拼图游戏源码

    4. **图形渲染**:J2ME使用` Graphics `对象进行绘图,开发者需要创建一个类来负责画布上的所有图形操作,包括绘制拼图块、背景、边框等。可能有一个名为` GameView `的类,它继承自` Canvas `或` Displayable `,并...

    lwuit实例 lwuit j2me 界面

    2. **样式表和主题**:LWUIT允许开发者通过XML样式表定义组件的颜色、字体、边框等视觉属性,可以创建和应用全局主题,使应用保持一致的视觉风格。 3. **事件处理**:LWUIT支持事件监听,可以通过添加事件处理器来...

    俄罗斯方块J2ME代码

    `Display` 类是J2ME中的UI管理类,用于管理所有可显示的屏幕组件。`Display.getDisplay(this)` 获取到MIDlet与之关联的显示屏实例。 3. **Canvas 类**: `GameCanvas` 类继承自 `javax.microedition.lcdui.Canvas...

    J2ME手机按钮开发

    在 J2ME 中,如果想要创建自定义的 UI 组件,通常需要继承 `javax.microedition.lcdui` 包中的 `Item` 或者 `Canvas` 类,并重写其中的一些方法。对于按钮来说,最常用的是继承 `Canvas` 类并实现必要的逻辑。 ####...

    j2me中用canva做下拉菜单

    在J2ME(Java 2 Micro Edition)平台上开发移动应用时,有时我们...此外,对于更复杂的UI需求,可以考虑使用J2ME的轻量级用户界面库,如LWUIT( Lightweight User Interface Toolkit)或者后来的JavaFX for Embedded。

    一像素图片制作仿Apple主题手机程序界面

    在IT行业中,设计一款应用程序的用户界面(UI)是至关重要的步骤,因为它直接影响到用户的体验和产品的吸引力。本文将深入探讨如何使用一像素图片来创建仿Apple主题的手机程序界面,以及涉及到的相关技术,如Canvas...

    <原创>自定义的一个文本显示框(自定义分行,滚动条)

    在Java ME (J2ME) 平台上,自定义组件通常是通过继承已有的UI组件类,如 LCDUIModule 或 Canvas,并覆盖其方法来创建的。在这个情况下,开发者可能已经扩展了J2ME的基础组件,如TextBox或Displayable,以实现特定的...

    lwuit demo 华丽的九宫格

    1. **组件设计**:LWUIT提供了丰富的组件库,如Button、Label、ImageComponent等,可以方便地创建出各种类型的UI元素,并能进行自定义样式设置,比如背景色、边框、字体等。 2. **布局管理器**:LWUIT的GridLayout...

    lwuit 开发文档

    开发者可以通过XML文件定义主题,包括颜色、字体、边框样式等,轻松实现全局UI风格的改变。此外,还可以通过ThemeRoller工具自定义皮肤,提高应用的视觉吸引力。 四、动画与效果 LWUIT提供了丰富的动画效果,如...

    LWUIT_J4LChart

    在移动应用开发领域,LWUIT ( Lightweight UI Toolkit ) 是一个流行的选择,它为Java ME (J2ME) 平台提供了丰富的用户界面组件。LWUIT 的目标是减轻开发者在构建具有吸引力的图形用户界面时的工作负担。而J4LChart ...

    lwuit api 文档

    LWUIT是一个轻量级的用户界面框架,它弥补了J2ME MIDP API在UI设计上的不足,提供了一套更加灵活和强大的UI组件。LWUIT不仅支持各种布局管理器,还引入了皮肤(Theme)的概念,允许开发者通过XML定义界面样式,实现...

    LWUIT布局设置

    例如,可以使用`addComponent(BorderLayout.CENTER, component)`或`addComponent("Center", component)`两种方式之一添加组件,但建议使用第一种方式以避免错误。在BorderLayout中,中心区域通常会占用最大空间,而...

Global site tag (gtag.js) - Google Analytics