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

📄 waitflash.java

📁 基于J2ME
💻 JAVA
字号:


////////////////////////////////////////////////////////////////////*/
package com.yxw.view;

import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.util.Timer;
import java.util.TimerTask;

import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.List;

import com.yxw.control.*;
import com.yxw.interfaces.HttpListener;
import com.yxw.model.PlayList;
import com.yxw.util.*;
public class WaitFlash extends Canvas implements CommandListener,HttpListener{

	private int mCount, mMaxinum;

	private int mInterval;

	private int mWidth, mHeight, mx, my, mRadius;

	private String Msg;
	private Command cancel;
	private Connection con;
	protected void paint(Graphics g) {
		int theta = -(mCount * 360 / mMaxinum);

		///////////////
		// 以下setColor我们是要定义动画的背景色彩		
		//g.setColor(255, 255, 255); // 这是白色
		//g.setColor(8,65,99); // 这是深蓝色
		g.setColor(222,235,198); // 这是浅绿色
		g.fillRect(0, 0, mWidth, mHeight);
		///////////////

		///////////////
		// 以下setColor我们是要定义动画中圆形物体的边缘色彩
		//g.setColor(0x00ff0000); // 这是红色
		g.setColor(173,195,41); // 这是绿色
		///////////////		
		g.drawArc(mx, my, mRadius, mRadius, 0, 360);
		
		///////////////
		// 以下setColor我们是要定义动画中圆形物体的填充色彩
		//g.setColor(255,154,49);// 橙色
		g.setColor(115,166,49);// 深绿色
		///////////////
		g.fillArc(mx, my, mRadius, mRadius, theta + 90, 90);
		g.fillArc(mx, my, mRadius, mRadius, theta + 270, 90);

		if (Msg != null) {
			g.drawString(Msg, mWidth / 2, my+mRadius+20, Graphics.BOTTOM
					| Graphics.HCENTER);
		}
	}

	public WaitFlash(String message,String url) {
		mCount = 0;
		mMaxinum = 36;
		mInterval = 50;
		mWidth = getWidth();
		mHeight = getHeight();

		int halfWidth = (mWidth - mRadius) / 2;
		int halfHeight = (mHeight - mRadius) / 2;
		mRadius = Math.min(halfWidth, halfWidth)-10;

		mx = halfWidth - mRadius / 2;
		my = halfHeight - mRadius / 2;

		TimerTask task = new TimerTask() {
			public void run() {
				mCount = (mCount + 1) % mMaxinum;
				repaint();
			}
		};
		RMSDao rmsDao=new RMSDao();
		boolean isProxy;
		byte[] config=rmsDao.getConfig("config");
		rmsDao=null;
		ByteArrayInputStream inputStream=new ByteArrayInputStream(config);
		DataInputStream dis=new DataInputStream(inputStream);
		try {
			dis.readInt();
			isProxy=dis.readBoolean();
			inputStream.reset();
			inputStream.close();
			dis.close();
		} catch (IOException e) {
			// TODO 自动生成 catch 块
			
			isProxy=false;
			e.printStackTrace();
		}
		con=new Connection(url);
		con.setDataType(Constant.LIEBIAO);
		con.setProxy(isProxy);
		con.setListener(this);
		con.start();
		this.Msg=message;
		Timer timer = new Timer();
		timer.schedule(task, 0, mInterval);
		this.setCommandListener(this);
		cancel=new Command("取消",Command.ITEM,2);
		// Command tt=new Command("fds1",Command.ITEM,2);
		// Command tt2=new Command("fds2",Command.ITEM,2);
		// List list=new List("",List.IMPLICIT);
		 this.addCommand(cancel);
		// this.addCommand(tt);
	//	this.addCommand(tt2);
		
		
	}

	public void setMessage(String messge) {
		Msg = messge;
		repaint();
	}

	public void commandAction(Command arg0, Displayable arg1) {
		// TODO 自动生成方法存根
		if(arg0==this.cancel){
			
			MainMidlet.goBack();
		}
		
		
	}

	public void onError(int code, String message) {
		// TODO 自动生成方法存根
	
		con.cancel();
		MainMidlet.replace(new InfoForm("出错了",code+":"+message));
		
	}

	public void onFinish(byte[] data, int size) {//接收列表数据,传递给下一屏显示
		// TODO 自动生成方法存根
		if(data!=null){
			ByteArrayInputStream inputStream = new ByteArrayInputStream(data);
			DataInputStream dis=new DataInputStream(inputStream);
			try {
				int length=dis.readInt();
				int currentPage=dis.readInt();
				int totalPage=dis.readInt();
				PlayList[] list=new PlayList[length];
				int i=0;
				while(dis.available()>0){
					list[i]=new PlayList();
					list[i].setFileName(dis.readUTF());//读取数据的顺序一定要跟服务器写入数据的顺序一致
					list[i].setUrl(dis.readUTF());
					list[i].setSize(dis.readLong());
					i++;
				}
				inputStream.reset();
				inputStream.close();
				dis.close();
			} catch (IOException e) {
				// TODO 自动生成 catch 块
				e.printStackTrace();
			}
			
		}
		
		MainMidlet.replace(new InfoForm("提示信息","getData size:"+size+"B"));
		System.out.println("onFinish");
	}

	public void onProgress(int percent) {
		// TODO 自动生成方法存根
		System.out.println("onProgress");
	}

	public void onSetSize(int size, long fileSize) {
		// TODO 自动生成方法存根
		System.out.println("onSetSize");
	}
}

⌨️ 快捷键说明

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