国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

實例論證J2ME的事件傳輸機制

2019-11-18 11:21:36
字體:
來源:轉載
供稿:網友

本文主要闡述的問題是,在J2ME開發中事件的傳輸到底是什么機制。主要圍繞Canvas類事件傳輸的串行化進行分析和研究,通過實例進行論證并在最后得出結論。

    通過參考java doc我們可以知道在J2ME中的事件傳輸是串行化的,那么什么是串行化呢?java doc里面說當一個時間方法調用完成之后,下面的事件方法才會被調用。這樣可以保證用戶的上次輸入已經被完成了,下次的事件輸入才會得到響應。首先我們來看看那些方法是所謂的事件方法。在MIDP中列出了如下的方法:
showNotify()
hideNotify()
keyPRessed()
keyRepeated()
keyReleased()
pointerPressed()
pointerDragged()
pointerReleased()
paint()
the CommandListener's commandAction() method
我們針對上述串行化的理解不防做一下這樣的假設,當showNotify()方法被調用的時候,假如在內部定義了repaint()方法,則會請求系統對屏幕進行重新的繪制,這會調用到paint()方法。接下來我們實現keyPressed()方法,讓它把按鍵的名字打印在屏幕上。為了模擬串行化的效果,我們在每個方法中都讓當前的線程睡眠2000ms,假如事件的確是串行化的機制,那么程序一定會斷斷續續的畫出我們的按鍵名。為了論證我們的設想,我編寫了下面的一段代碼。

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class KeyCodes extends MIDlet
{
    private Display display;
    private KeyCodeCanvas canvas;

    public KeyCodes()
    {
        display = Display.getDisplay(this);
        canvas = new KeyCodeCanvas(this);
    }

    protected void startApp()
    {
        display.setCurrent(canvas);
    }

    protected void pauseApp()
    {
    }

    protected void destroyApp(boolean unconditional)
    {
    }

    public void exitMIDlet()
    {
        destroyApp(true);
        notifyDestroyed();
    }
}

class KeyCodeCanvas extends Canvas implements CommandListener
{
    private Command cmExit;
    private String keyText = "hello let's go!";
    private KeyCodes midlet;

    public KeyCodeCanvas(KeyCodes midlet)
    {
        this.midlet = midlet;
        cmExit = new Command("Exit", Command.EXIT, 1);
        addCommand(cmExit);
        setCommandListener(this);
    }

    protected void paint(Graphics g)
    {
        System.out.println("I am invoked!");
        g.setColor(0, 255, 0);
        g.fillRect(0, 0, getWidth(), getHeight());

        if (keyText != null)
        {



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 延津县| 台东县| 平陆县| 藁城市| 日喀则市| 札达县| 全椒县| 得荣县| 屯门区| 龙里县| 留坝县| 华蓥市| 新安县| 浮山县| 万全县| 道孚县| 遵化市| 柳州市| 博野县| 蓬溪县| 曲沃县| 霍州市| 和顺县| 岳阳市| 渭南市| 沙湾县| 英超| 大丰市| 辽阳市| 宁化县| 房山区| 鹤壁市| 田东县| 辽宁省| 富裕县| 孝昌县| 潼南县| 防城港市| 皋兰县| 凤凰县| 安丘市|