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

📄 eventdemo.java

📁 This is a resource based on j2me embedded,if you dont understand,you can connection with me .
💻 JAVA
字号:
/* * @(#)EventDemo.java	1.5 06/10/10 * * Copyright  1990-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER *  * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation.  *  * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License version 2 for more details (a copy is * included at /legal/license.txt).  *  * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA  *  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions.  */package basis.demos;import java.awt.*;import java.awt.event.*;import basis.Builder;public class EventDemo extends Demo implements MouseListener, MouseMotionListener, KeyListener {    private int w;    private int h;    private int border;    private int corner;    private int cursorOffset;    private int cursorHeight;    private boolean inside;    private int posX;    private int posY;    private Color[] buttonColors = new Color[3];    private int fontSize;    private Font font;    private int buttonWidth;    private int buttonHeight;    private String keyCharString = "";    private String keyCodeString = "";    private String modifierString = "";    public EventDemo() {        for (int i = 0; i < 3; i++) {            buttonColors[i] = Builder.SUN_BLUE;        }        addMouseListener(this);        addMouseMotionListener(this);        addKeyListener(this);    }    public void paint(Graphics g) {        Dimension d = getSize();        w = d.width - 1;        h = d.height - 1;        border = (w + h) / 40;        corner = (w + h) / 15;        cursorOffset = 2 * h / 3;        cursorHeight = (h / 3 - border) / 3 - 1;        g.setColor(Color.white);        g.fillRect(0, 0, w, h);        g.setColor(inside ? Builder.SUN_RED : Builder.SUN_BLUE);        g.fillRect(0, 0, corner, border);        g.fillRect(corner + 1, 0, w - 2 * (corner + 1), border);        g.fillRect(w - corner, 0, corner, border);        g.fillRect(0, 0, border, corner);        g.fillRect(w - border, 0, border, corner);        g.fillRect(0, corner + 1, border, h - 2 * (corner + 1));        g.fillRect(w - border, corner + 1, border, h - 2 * (corner + 1));        g.fillRect(0, h - corner, border, corner);        g.fillRect(w - border, h - corner, border, corner);        g.fillRect(0, h - border, corner, border);        g.fillRect(corner + 1, h - border, w - 2 * (corner + 1), border);        g.fillRect(w - corner, h - border, corner, border);        g.fillRect(border + 1, cursorOffset + 0 * (cursorHeight + 1), w / 2 - border - 2, cursorHeight);        g.fillRect(border + 1, cursorOffset + 1 * (cursorHeight + 1), w / 2 - border - 2, cursorHeight);        g.fillRect(border + 1, cursorOffset + 2 * (cursorHeight + 1), w / 2 - border - 2, cursorHeight);        g.fillRect(w / 2 + 1, cursorOffset + 0 * (cursorHeight + 1), w / 2 - border - 2, cursorHeight);        g.fillRect(w / 2 + 1, cursorOffset + 1 * (cursorHeight + 1), w / 2 - border - 2, cursorHeight);        g.fillRect(w / 2 + 1, cursorOffset + 2 * (cursorHeight + 1), w / 2 - border - 2, cursorHeight);        g.setColor(Color.white);        int fontWidth = (w - 2 * border) / 2 / 5;        int fontHeight = (h - 2 * border) / 3 / 4;        fontSize = fontWidth < fontHeight ? fontWidth : fontHeight;        font = new Font("Monospaced", Font.BOLD, fontSize);        g.setFont(font);        int x = border + 4;        int y = cursorOffset + cursorHeight - 4;        g.drawString("Default", x, y);        y += cursorHeight;        g.drawString("Hand", x, y);        y += cursorHeight;        g.drawString("Text", x, y);        x = w / 2 + 4;        y = cursorOffset + cursorHeight - 4;        g.drawString("Cross", x, y);        y += cursorHeight;        g.drawString("Move", x, y);        y += cursorHeight;        g.drawString("Wait", x, y);        paintMouseButtons(g);        paintMousePosition(g);        paintKeyStrings(g);    }    public void mouseClicked(MouseEvent e) {        requestFocus();    }    public void mouseEntered(MouseEvent e) {        Toolkit.getDefaultToolkit().beep();        requestFocus();        inside = true;        repaint();    }    public void mouseExited(MouseEvent e) {        inside = false;        repaint();    }    public void mousePressed(MouseEvent e) {        Toolkit.getDefaultToolkit().beep();        Color color = Builder.SUN_RED;        int modifier = e.getModifiers();        if ((modifier & InputEvent.BUTTON1_MASK) != 0) {            buttonColors[0] = color;        }        if ((modifier & InputEvent.BUTTON2_MASK) != 0) {            buttonColors[1] = color;        }        if ((modifier & InputEvent.BUTTON3_MASK) != 0) {            buttonColors[2] = color;        }        Graphics g = getGraphics();        paintMouseButtons(g);    }    public void mouseReleased(MouseEvent e) {        Color color = Builder.SUN_BLUE;        int modifier = e.getModifiers();        if ((modifier & InputEvent.BUTTON1_MASK) != 0) {            buttonColors[0] = color;        }        if ((modifier & InputEvent.BUTTON2_MASK) != 0) {            buttonColors[1] = color;        }        if ((modifier & InputEvent.BUTTON3_MASK) != 0) {            buttonColors[2] = color;        }        Graphics g = getGraphics();        paintMouseButtons(g);    }    public void mouseDragged(MouseEvent e) {        mouseMoved(e);    }    public void mouseMoved(MouseEvent e) {        posX = e.getX();        posY = e.getY();        Graphics g = getGraphics();        paintMousePosition(g);        Cursor cursor = Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR);        if (posX >= 0 && posX <= w && posY >= 0 && posY <= h) {            if (posX > corner && posX < w - (corner + 1) && posY < border) {                cursor = Cursor.getPredefinedCursor(Cursor.N_RESIZE_CURSOR);            }            if (posX > corner && posX < w - (corner + 1) && posY > h - (border + 1)) {                cursor = Cursor.getPredefinedCursor(Cursor.S_RESIZE_CURSOR);            }            if (posX > w - (border + 1) && posY > corner && posY < h - (corner + 1)) {                cursor = Cursor.getPredefinedCursor(Cursor.E_RESIZE_CURSOR);            }            if (posX < border && posY > corner && posY < h - (corner + 1)) {                cursor = Cursor.getPredefinedCursor(Cursor.W_RESIZE_CURSOR);            }            if (posX < corner && posY < border || posX < border && posY < corner) {                cursor = Cursor.getPredefinedCursor(Cursor.NW_RESIZE_CURSOR);            }            if (posX > w - (corner + 1) && posY < border || posX > w - (border + 1) && posY < corner) {                cursor = Cursor.getPredefinedCursor(Cursor.NE_RESIZE_CURSOR);            }            if (posX > w - (corner + 1) && posY > h - (border + 1) || posX > w - (border + 1) && posY > h - (corner + 1)) {                cursor = Cursor.getPredefinedCursor(Cursor.SE_RESIZE_CURSOR);            }            if (posX < corner && posY > h - (border + 1) || posX < border && posY > h - (corner + 1)) {                cursor = Cursor.getPredefinedCursor(Cursor.SW_RESIZE_CURSOR);            }            if (posX > border &&                posX < w / 2 - 1 &&                posY > cursorOffset + 0 * cursorHeight + 1 &&                posY < cursorOffset + 1 * cursorHeight + 1) {                cursor = Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR);            }            if (posX > border &&                posX < w / 2 - 1 &&                posY > cursorOffset + 1 * cursorHeight + 1 &&                posY < cursorOffset + 2 * cursorHeight + 1) {                cursor = Cursor.getPredefinedCursor(Cursor.HAND_CURSOR);            }            if (posX > border &&                posX < w / 2 - 1 &&                posY > cursorOffset + 2 * cursorHeight + 1 &&                posY < cursorOffset + 3 * cursorHeight + 1) {                cursor = Cursor.getPredefinedCursor(Cursor.TEXT_CURSOR);            }            if (posX > w / 2 &&                posX < w - (border + 1) &&                posY > cursorOffset + 0 * cursorHeight + 1 &&                posY < cursorOffset + 1 * cursorHeight + 1) {                cursor = Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR);            }            if (posX > w / 2 &&                posX < w - (border + 1) &&                posY > cursorOffset + 1 * cursorHeight + 1 &&                posY < cursorOffset + 2 * cursorHeight + 1) {                cursor = Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR);            }            if (posX > w / 2 &&                posX < w - (border + 1) &&                posY > cursorOffset + 2 * cursorHeight + 1 &&                posY < cursorOffset + 3 * cursorHeight + 1) {                cursor = Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR);            }        }        setCursor(cursor);    }    public void keyPressed(KeyEvent e) {        Toolkit.getDefaultToolkit().beep();        keyCharString = "";        keyCodeString = "";        modifierString = "";        char keyChar = e.getKeyChar();        if (keyChar == KeyEvent.CHAR_UNDEFINED) {            keyCharString += "undefined";        } else {            keyCharString += "'" + keyChar + "'";            keyCharString += " (" + (int) keyChar + ")";        }        int keyCode = e.getKeyCode();        Integer key = new Integer(keyCode);        String value = e.getKeyText(keyCode);        if (value == null) {            value = "unknown";        }        keyCodeString += value + " (" + keyCode + ")";        int modifier = e.getModifiers();        if ((modifier & InputEvent.SHIFT_MASK) != 0) {            if (keyCode != KeyEvent.VK_SHIFT) {                modifierString += "SHIFT ";            }        }        if ((modifier & InputEvent.CTRL_MASK) != 0) {            if (keyCode != KeyEvent.VK_CONTROL) {                modifierString += "CONTROL ";            }        }        if ((modifier & InputEvent.ALT_MASK) != 0) {            if (keyCode != KeyEvent.VK_ALT) {                modifierString += "ALT ";            }        }        if ((modifier & InputEvent.ALT_GRAPH_MASK) != 0) {            if (keyCode != KeyEvent.VK_ALT_GRAPH) {                modifierString += "ALT_GRAPH ";            }        }        if ((modifier & InputEvent.META_MASK) != 0) {            if (keyCode != KeyEvent.VK_META) {                modifierString += "META ";            }        }        Graphics g = getGraphics();        paintKeyStrings(g);    }    public void keyReleased(KeyEvent e) {}    public void keyTyped(KeyEvent e) {}    private void paintMouseButtons(Graphics g) {        buttonWidth = (w - 2 * (border + 1)) / 3 - 1;        buttonHeight = (h - 2 * border) / 3;        for (int i = 0; i < 3; i++) {            g.setColor(buttonColors[i]);            g.fillRect(border + 1 + i * (buttonWidth + 1), border + 1, buttonWidth, buttonHeight);        }    }    private void paintMousePosition(Graphics g) {        int x = border;        int y = border + 1 + buttonHeight;        g.setColor(Color.white);        g.fillRect(x, y, w - 2 * border, fontSize);        g.setFont(font);        g.setColor(Color.black);        x += 1;        y += 4 * fontSize / 5;        g.drawString("x:", x, y);        g.drawString("y:", w / 2, y);        g.setColor(inside ? Builder.SUN_RED : Builder.SUN_BLUE);        g.drawString("  " + posX, x, y);        g.drawString("  " + posY, w / 2, y);    }    private void paintKeyStrings(Graphics g) {        g.setColor(Color.white);        int x = border;        int y = border + 1 + buttonHeight + fontSize;        g.fillRect(x, y, w - 2 * border, 3 * fontSize);        g.setFont(font);        x += 1;        y += fontSize;        g.setColor(Color.black);        g.drawString("char: ", x, y - fontSize / 5);        g.setColor(inside ? Builder.SUN_RED : Builder.SUN_BLUE);        g.drawString("      " + keyCharString, x, y - fontSize / 5);        y += fontSize;        g.setColor(Color.black);        g.drawString("code:  ", x, y - fontSize / 5);        g.setColor(inside ? Builder.SUN_RED : Builder.SUN_BLUE);        g.drawString("       " + keyCodeString, x, y - fontSize / 5);        y += fontSize;        g.setColor(Color.black);        g.drawString("mods: ", x, y - fontSize / 5);        g.setColor(inside ? Builder.SUN_RED : Builder.SUN_BLUE);        g.drawString("      " + modifierString, x, y - fontSize / 5);        g.setColor(Builder.SUN_RED);   }}

⌨️ 快捷键说明

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