?? guicontroller.java
字號:
/*///////////////////////////////////////////////////////////////////////////////
//文檔生成日期:2006.3.28
//
//(1)概述:
//類名稱:GUIController
//類說明:
// MVC中的控制器部分,負責界面事件的處理,以及決定該顯示哪一個Form。
//所在子系統:StreamingDemo
//
//系統總描述:
用兩個Player交替播放從網絡上下載的流媒體。
上面的代碼可以從
http://www.cnblogs.com/Files/zhengyun_ustc/StreamingDemo.rar
下載;
安裝的jar包從
http://www.cnblogs.com/Files/zhengyun_ustc/StreamingDemo-deployed.rar下載。
本文屬于討論稿,提供的僅僅是建議和測試意見。
本文還可以從
http://www.cnblogs.com/zhengyun_ustc/archive/2006/3/28/StreamingDemo.html 得到最新稿。
//(2)歷史記錄:
//創建人: 鄭昀(2006.3.28)
//修改歷史:
//聯系我: Google Talk >> zhengyun@gmail.com
//Blogs: http://blog.csdn.net/zhengyun_ustc/以及http://www.cnblogs.com/zhengyun_ustc
//(3)版權聲明:
//我這個版本j2me客戶端代碼僅僅允許您借鑒,但不得用于商業用途,除非得到鄭昀本人的授權。本人保留所有權利。
////////////////////////////////////////////////////////////////////*/
package com.ultrapower.control;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Displayable;
import javax.microedition.media.MediaException;
import com.ultrapower.midlet.StreamingDemo;
import com.ultrapower.view.FormPlayer;
/**********************************************************
// GUIController
//
// Class Description:
// MVC中的控制器部分,負責界面事件的處理,以及決定該顯示哪一個Form。
//
// Author:
// zhengyun@ultrapower
//
**********************************************************/
public class GUIController {
public StreamingDemo m_Midlet;
private FormPlayer m_playerForm;
public GUIController(StreamingDemo midletMain){
m_Midlet = midletMain;
}
/**********************************************************
// GUIController::init()
//
// Description:
// 初始化控制器:
* 初始化各個Form界面
// Parameters:
// Return Values:
// Author:
// zhengyun@ultrapower
//
**********************************************************/
public void init(){
/*
* 初始化界面,并顯示它
*/
if(m_playerForm == null)
{
m_playerForm = new FormPlayer(
"Streaming方式播放音樂",
this);
}
setCurrent(m_playerForm);
}
/**********************************************************
// GUIController::setCurrent()
//
// Description:
// 設置當前顯示的界面
//
// Parameters:
// Return Values:
// Author:
// zhengyun@ultrapower
//
**********************************************************/
public void setCurrent(Displayable disp){
m_Midlet.setCurrent(disp);
}
public void setCurrent(Alert alert, Displayable disp){
m_Midlet.setCurrent(alert, disp);
}
/**********************************************************
// GUIController::EventID
//
// Description:
// 定義事件ID內部類
//
// Parameters:
// Return Values:
// Author:
// zhengyun@ultrapower
//
**********************************************************/
public static class EventID{
private EventID(){
}
public static final byte EVENT_EXIT = 0;//退出
public static final byte EVENT_KEYPRESSED = 1;//用戶按鍵了
public static final byte EVENT_FORM_ERROR = 2;//出錯了
// Main player 下載完畢
public static final byte EVENT_MAIN_DownloadCompleted = 3;
// Secondary player 開始播放了
public static final byte EVENT_SECONDARY_BeginToPlay = 4;
// Main player 開始播放了
public static final byte EVENT_Main_BeginToPlay = 5;
}
/**********************************************************
// GUIController::handleEvent
//
// Description:
// 對傳入的事件進行處理
//
// Parameters:
// Return Values:
// Remark:
*
// Author:
// zhengyun@ultrapower
//
**********************************************************/
public void handleEvent( int eventID,Object[] args){
System.out.println("Controller::handleEvent eventID>>" + eventID);
switch (eventID)
{
case EventID.EVENT_EXIT:
{
try
{
// 銷毀音樂資源
m_playerForm.destroyMusic();
System.gc(); // 通知進行垃圾收集
Thread.yield(); // 本線程暫停一下,使得GC可以馬上獲得機會運行
m_Midlet.exit(false);
}
catch(Exception exc)
{
System.out.println("/**handleEvent發生異常!");
exc.printStackTrace();
}
break;
}
case EventID.EVENT_MAIN_DownloadCompleted:
case EventID.EVENT_Main_BeginToPlay:
{
System.out.println("/*So begin to download secondary resource!");
// 這時候可以下載Secondary的音樂了,并且進行Secondary Player的預運算
m_playerForm.m_threadSecondary.notifyGetMusic();
m_playerForm.m_threadSecondary.notifyPrefetch();
break;
}
case EventID.EVENT_SECONDARY_BeginToPlay:
{
System.out.println("/**So begin to download main resource!");
// 這時候可以下載Main的音樂了,并且進行Main Player的預運算
m_playerForm.m_threadMain.notifyGetMusic();
m_playerForm.m_threadMain.notifyPrefetch();
break;
}
default:
break;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -