⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 textdialog.java

📁 j2me开发的1个简单的wap浏览器.程序框架还是不错的.包括对低级事件的处理.通信框架,标签的解析
💻 JAVA
字号:
/********************************************************************
 * 项目名称				:<b>j2me学习 J2me Wap Explorer</b>			<br/>
 * 
 * Copyright 2005-2006 Wuhua. All rights reserved </br>
 *
 * 本程序只用于学习目的,不能用于商业目的。如有需要请联系作者
 ********************************************************************/
package org.wuhua.wap.ui.form;

import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Graphics;

import org.wuhua.wap.log.Logger;
import org.wuhua.wap.ui.core.Platform;
import org.wuhua.wap.util.FontUtil;
 

 

/**
 * <b>类名:Dialog.java</b> </br> 编写日期: 2006-9-16 <br/>
 * 程序功能描述:弹出窗口,因为足球项目要求很多的弹出窗口的形式不同所以 定义一个抽象的弹出窗口,把基本的功能再这个实现,以下的怎么绘制则交给具体的要求
 * <br/> Demo: <br/> Bug: <br/>
 * 
 * 程序变更日期 :<br/> 变更作者 :<br/> 变更说明 :<br/>
 * 
 * @author wuhua </br> <a href="mailto:rrq12345@163.com">rrq12345@163.com</a>
 */
public class TextDialog extends Dialog {
	private static Logger logger = Logger.getLogger("TextDialog");
 
	 
	 
	public TextDialog(String _title, Panel _parent, Display _display, long _timeOut) {
		super(_title, _parent, _display, Dialog.DIALOG_TEXT, _timeOut);
		this.title = _title;
		 
		initView();
		
	}

 
	protected void paint(Graphics g) {
		this.initView(); //这个把我给害死了
		 parent.paint(g);
		
		 this.paintTextDialogImpl(g);
	}

	public void setDialogTitle(String title){
		this.title = title;
	}
 
	/**
	 * 弹出个窗体
	 * 
	 */
	public void paintTextDialogImpl(Graphics g) {
		drawRGB(g);
		paintDialog(g);
		softButton.paint(g);
	}
	 
	
	/**
	 * 因为这段代码用在sizeChange中
	 * 所以nokia初始化一个类的时候也会初始调用这个方法,而且是在类初始化前调用的.
	 * 所有会抛出NullPointException.
	 * 我找了大半天才发现这个问题.好累.现在快12点了.还没冲凉
	 *
	 */
	protected void initView() {
		if(title == null)
			return; 
		int titleWidth = FontUtil.getWidth(font, title);
		int width = Platform.WIDTH - 40;
		int height = FontUtil.siptRow(font, width, title) * font.getHeight();
 
	 
		view[X] = titleWidth < width ? (Platform.WIDTH/2  - titleWidth / 2 - 10) : 10;

		view[Y] = (Platform.HEIGHT/2 - height - 6);

		view[WIDTH] = titleWidth < width ? (titleWidth + 20) : width + 20;

		view[HEIGHT] = height + 12;

		rowTitle = FontUtil.splitOnlyStringToRowString(font, title, width - 4);

	}

	private void paintDialog(Graphics g) {
		fillDialog(g);
		paintDailogTitle(g);

	}

	private void paintDailogTitle(Graphics g) {
		g.setColor(fontColor);
		 
		for (int i = 0; i < rowTitle.length; i++) {
			g.drawString(rowTitle[i], view[X] + 10, view[Y] + 6
					+ font.getHeight() * i, Graphics.TOP | Graphics.LEFT);
		}

	}

	private void fillDialog(Graphics g) {
		g.setColor(0xFFFFFF);
		g.drawRect(view[X], view[Y], view[WIDTH], view[HEIGHT]);
		g.setColor(bgColor);
		g.fillRect(view[X] + 1, view[Y] + 1, view[WIDTH] - 1, view[HEIGHT] - 1);

	}
	
	/**
	 * 这段代码在nokia中有很大的问题啊.记住.
	 * 因为父类有setTitle()了
	
	
	public void setTitle(String title){
		this.title = title;
		this.initView();
	} */

	 

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -