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

📄 message.java

📁 anyview手机小说阅览器的开源代码
💻 JAVA
字号:
package com.ismyway.anyview;

import javax.microedition.lcdui.*;

/**
 * <p>Title: AnyView</p>
 *
 * <p>Description: E680(I) Reader</p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: www.ismyway.com</p>
 *
 * @author ZhangJian
 * @version 1.0
 */
public class Message extends AbstractWindow {
    private byte[] title = new byte[0];
    private byte[][] msg = new byte[0][];
    private Image image = null;

    public Message() {
        super();
    }

    public void setMessage(byte[] title, byte[][] msg) {
        this.title = title;
        this.msg = msg;
        WINDOW_STATE = OPENING;

        buildMessageImage();
    }

    public void showMessage(String title, String[] msg) {
        if (null == title || title.equals("")) {
            title = "Title";
        }

        if (null == msg || msg.length < 1) {
            msg = new String[] {"Message"};
        }

        this.title = AnyView.cf.str2bytes(title);
        this.msg = new byte[msg.length][];
        for (int i = 0; i < msg.length; i++) {
            this.msg[i] = AnyView.cf.str2bytes(msg[i]);
            WINDOW_STATE = OPENING;
        }
        WINDOW_STATE = OPENING;

        buildMessageImage();
    }

    private void buildMessageImage() {
        width = 0;

        //计算窗口的宽
        int max = 0;
        max = title.length * AnyView.cf.AsciiWidth;
        for (int i = 0; i < msg.length; i++) {
            if (max < msg[i].length * AnyView.cf.AsciiWidth) {
                max = msg[i].length * AnyView.cf.AsciiWidth;
            }
        }
        width = max + 20;

        //计算窗口的高
        height = 50 +
                 (AnyView.cf.FontHeight + AnyView.lineSpace) * msg.length -
                 AnyView.lineSpace;

        image = Image.createImage(width, height);
        Graphics g = image.getGraphics();
        g.setColor(AnyView.background);
        g.fillRect(0, 0, width, height);
        g.setColor(AnyView.bordorcolor);
        g.drawRect(0, 0, width - 1, height - 1);
        g.drawLine(0, 25, width, 25);

        if (AnyView.readType == 1) { //横屏
            this.LEFT = (AnyView.ScreenWidth - this.height) >> 1;
            this.TOP = (AnyView.ScreenHeight + this.width) >> 1;
        } else {
            this.LEFT = (AnyView.ScreenWidth - this.width) >> 1;
            this.TOP = (AnyView.ScreenHeight - this.height) >> 1;
        }
        this.LEFT = this.LEFT < 0 ? 0 : this.LEFT;
        this.TOP = this.TOP < 0 ? 0 : this.TOP;

        int w = title.length * AnyView.cf.AsciiWidth;
        int x = (width - w) >> 1;
        int y = (25 - AnyView.cf.FontHeight) >> 1;
        AnyView.cf.setColor(AnyView.titlecolor);
        Image temp = AnyView.cf.buildImage(title);
        g.drawImage(temp, x, y, ANCHOR);

        AnyView.cf.setColor(AnyView.fontcolor);
        int top = 35;
        for (int i = 0; i < msg.length; i++) {
            temp = AnyView.cf.buildImage(msg[i]);
            g.drawImage(temp, 10, top, ANCHOR);
            top += AnyView.cf.FontHeight + AnyView.lineSpace;
        }
        temp = null;
        System.gc();
    }


    /**
     * bof
     *
     * @return boolean
     * @todo Implement this com.ismyway.anyview.AbstractWindow method
     */
    protected boolean bof() {
        return false;
    }

    /**
     * destroy
     *
     * @todo Implement this com.ismyway.anyview.AbstractWindow method
     */
    protected void destroy() {
    }

    /**
     * getWindow
     *
     * @return Image
     * @todo Implement this com.ismyway.anyview.AbstractWindow method
     */
    protected Image getWindow() {
        if (WINDOW_STATE == OPENING) {
            return image;
        }
        return null;
    }


    public void keyGameA() {
        WINDOW_STATE = CLOSED;
    }

    public void keyGameB() {
        WINDOW_STATE = CLOSED;
    }

    public void keyLeft() {
        WINDOW_STATE = CLOSED;
    }

    public void keyRight() {
        WINDOW_STATE = CLOSED;
    }

    public void keyUp() {
        WINDOW_STATE = CLOSED;
    }

    public void keyDown() {
        WINDOW_STATE = CLOSED;
    }

    public void keyFire() {
        WINDOW_STATE = CLOSED;
    }

}

⌨️ 快捷键说明

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