如何将J2ME UI窗口部件背景设置为长尾词样式?

2026-03-26 23:451阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计832个文字,预计阅读时间需要4分钟。

如何将J2ME UI窗口部件背景设置为长尾词样式?

主要设计意图是:通过窗口组件跟随部件移动,可以自定义背景色等效果。

B类名称:Background.java

如何将J2ME UI窗口部件背景设置为长尾词样式?

编写日期:2006-8-14

程序功能描述:窗口和部件的基本背景类,子类可创建各种样式。


主要设计意图是:使窗口跟部件跟活波,可以自己设置背景色等效果.

/** * <b>类名:Background.java</b> </br> * 编写日期: 2006-8-14 <br/> * 程序功能描述:窗口,部件的基本背景类,子类可创建各式各样的背景,图片背景,半透明背景<br/> * Demo: <br/> * Bug: <br/> * * 程序变更日期 :<br/> * 变更作者 :<br/> * 变更说明 :<br/> * * @author wuhua */ public abstract class Background { /** * Defines the width of this Background. * Usually this is 0, but some backgrounds might have a border included. */ protected int borderWidth; protected int borderColor; protected int backgroundColor; /** * Creates a new Background. * The width of this background is set to 0 here. */ public Background() { this.borderWidth = 0; this.borderColor = 0; this.backgroundColor = 0x7899999; //灰色 }



/** * Paints this background. * * @param x the horizontal start point * @param y the vertical start point * @param width the width of the background * @param height the height of the background * @param g the Graphics on which the background should be painted. */ public abstract void paint( int x, int y, int width, int height, Graphics g ); } /** * <b>类名:LucencyBackground.java</b> </br> 编写日期: 2006-8-14 <br/> 程序功能描述: * 创建具有透明度的背景<br/> Demo: <br/> Bug: <br/> * * 程序变更日期 :<br/> 变更作者:<br/> 变更说明 :<br/> * * @author wuhua */ public class LucencyBackground extends Background { // 透明图片 private Image lucencyImage; // 透明度 private int alpha ; /** * 设置背景色,跟透明度创建一个具体透明效果的背景 * @param _backgroundColor * @param _alpha */ public LucencyBackground(int _backgroundColor, int _alpha ) { backgroundColor = _backgroundColor; alpha = _alpha ; } public void paint(int x, int y, int width, int height, Graphics g) { initLucencyImage(width, height); paint(x, y, g); } /* * 初始话背景图片 */ private void initLucencyImage(int width, int height) { // 创建一个指定高,宽的可修改图片 lucencyImage = Image.createImage(width, height); Graphics g = lucencyImage.getGraphics(); g.setColor(this.backgroundColor); g.fillRect(0, 0, width, height); // 画上面的横线 g.setColor(0xFFFFFF); g.drawLine(1, 1, lucencyImage.getWidth(), 1); // 画左边的白色竖线 g.setColor(0xFFFFFF); g.drawLine(1, 1, 1, height); g.setColor(0); for (int i = 0; i < 3; i++) { // 画右边的黑色竖线 g.drawLine(width-i, 0, width-i, height); // 画底下的黑色横线 g.drawLine(0, height-i, width, height-i); } } /* * 创建RGB像素值 */ private int[] createRGBInt() { int argb[] = new int[lucencyImage.getWidth() * lucencyImage.getHeight()]; lucencyImage.getRGB(argb, 0, lucencyImage.getWidth(), 0, 0, lucencyImage.getWidth(), lucencyImage.getHeight());// 获得图片的ARGB值 for (int i = 0; i < argb.length; i++) { argb[i] = (alpha << 24) | (argb[i] & 0x00FFFFFF);// 修改最高2位的值 } return argb; } /* * 描绘出来 */ private void paint(int x, int y, Graphics g) { g.setColor(0); //g.drawImage(lucencyImage, x, y, Graphics.TOP | Graphics.LEFT); g.drawRGB(createRGBInt(), 0, lucencyImage.getWidth(), x, y, lucencyImage.getWidth(), lucencyImage.getHeight(), true);// 画象素数组 } }



测试类可以从上篇文章 <<J2ME UI之边框>>种的test获取,只需要修改

Border b = Border.getRectBorder(3,0x7899999);// TODO 自动生成方法存根 b.paint(5,5,70,30,g); 改为 LucencyBackground b = new LucencyBackground(0x7899999,30); b.paint(5,5,100,30,g); 即可




以后设计按钮,菜单,窗口执行添加这些背景就可以有不同的表现形式了.^_^

标签:意图

本文共计832个文字,预计阅读时间需要4分钟。

如何将J2ME UI窗口部件背景设置为长尾词样式?

主要设计意图是:通过窗口组件跟随部件移动,可以自定义背景色等效果。

B类名称:Background.java

如何将J2ME UI窗口部件背景设置为长尾词样式?

编写日期:2006-8-14

程序功能描述:窗口和部件的基本背景类,子类可创建各种样式。


主要设计意图是:使窗口跟部件跟活波,可以自己设置背景色等效果.

/** * <b>类名:Background.java</b> </br> * 编写日期: 2006-8-14 <br/> * 程序功能描述:窗口,部件的基本背景类,子类可创建各式各样的背景,图片背景,半透明背景<br/> * Demo: <br/> * Bug: <br/> * * 程序变更日期 :<br/> * 变更作者 :<br/> * 变更说明 :<br/> * * @author wuhua */ public abstract class Background { /** * Defines the width of this Background. * Usually this is 0, but some backgrounds might have a border included. */ protected int borderWidth; protected int borderColor; protected int backgroundColor; /** * Creates a new Background. * The width of this background is set to 0 here. */ public Background() { this.borderWidth = 0; this.borderColor = 0; this.backgroundColor = 0x7899999; //灰色 }



/** * Paints this background. * * @param x the horizontal start point * @param y the vertical start point * @param width the width of the background * @param height the height of the background * @param g the Graphics on which the background should be painted. */ public abstract void paint( int x, int y, int width, int height, Graphics g ); } /** * <b>类名:LucencyBackground.java</b> </br> 编写日期: 2006-8-14 <br/> 程序功能描述: * 创建具有透明度的背景<br/> Demo: <br/> Bug: <br/> * * 程序变更日期 :<br/> 变更作者:<br/> 变更说明 :<br/> * * @author wuhua */ public class LucencyBackground extends Background { // 透明图片 private Image lucencyImage; // 透明度 private int alpha ; /** * 设置背景色,跟透明度创建一个具体透明效果的背景 * @param _backgroundColor * @param _alpha */ public LucencyBackground(int _backgroundColor, int _alpha ) { backgroundColor = _backgroundColor; alpha = _alpha ; } public void paint(int x, int y, int width, int height, Graphics g) { initLucencyImage(width, height); paint(x, y, g); } /* * 初始话背景图片 */ private void initLucencyImage(int width, int height) { // 创建一个指定高,宽的可修改图片 lucencyImage = Image.createImage(width, height); Graphics g = lucencyImage.getGraphics(); g.setColor(this.backgroundColor); g.fillRect(0, 0, width, height); // 画上面的横线 g.setColor(0xFFFFFF); g.drawLine(1, 1, lucencyImage.getWidth(), 1); // 画左边的白色竖线 g.setColor(0xFFFFFF); g.drawLine(1, 1, 1, height); g.setColor(0); for (int i = 0; i < 3; i++) { // 画右边的黑色竖线 g.drawLine(width-i, 0, width-i, height); // 画底下的黑色横线 g.drawLine(0, height-i, width, height-i); } } /* * 创建RGB像素值 */ private int[] createRGBInt() { int argb[] = new int[lucencyImage.getWidth() * lucencyImage.getHeight()]; lucencyImage.getRGB(argb, 0, lucencyImage.getWidth(), 0, 0, lucencyImage.getWidth(), lucencyImage.getHeight());// 获得图片的ARGB值 for (int i = 0; i < argb.length; i++) { argb[i] = (alpha << 24) | (argb[i] & 0x00FFFFFF);// 修改最高2位的值 } return argb; } /* * 描绘出来 */ private void paint(int x, int y, Graphics g) { g.setColor(0); //g.drawImage(lucencyImage, x, y, Graphics.TOP | Graphics.LEFT); g.drawRGB(createRGBInt(), 0, lucencyImage.getWidth(), x, y, lucencyImage.getWidth(), lucencyImage.getHeight(), true);// 画象素数组 } }



测试类可以从上篇文章 <<J2ME UI之边框>>种的test获取,只需要修改

Border b = Border.getRectBorder(3,0x7899999);// TODO 自动生成方法存根 b.paint(5,5,70,30,g); 改为 LucencyBackground b = new LucencyBackground(0x7899999,30); b.paint(5,5,100,30,g); 即可




以后设计按钮,菜单,窗口执行添加这些背景就可以有不同的表现形式了.^_^

标签:意图