package com.cherokee.tester; import javax.swing.*; import java.applet.Applet; import java.awt.*; import java.awt.event.*; /** * This class provides the user with all the needed information about events, and was used in testing for creating * fake events to send to applets. It can be ran as an application or applet. * Copyright (C) 2007 Travis Burtrum (moparisthebest) *

* This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. *

* 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 for more details. *

* You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *

* The code *may* be used under a lesser license (such as the LGPL) only with * express written permission from Travis Burtrum (moparisthebest) */ public class Tester extends Applet implements KeyListener, MouseListener, MouseMotionListener, FocusListener { public boolean mL, mML, kL, fL; public static int width = 500; public static int height = 500; public int x, y; public Point sq; String s = ""; String focus = ""; private Point[] trail; private int next = 0; private int mouseButton; public static Tester _instance; public static void main(String[] args) { JFrame.setDefaultLookAndFeelDecorated(true); JFrame frame = new JFrame("Tester"); frame.setResizable(false); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Tester tester = new Tester(); tester.init(); frame.add(tester); frame.setSize(400, 400); frame.setVisible(true); } public void init() { _instance = this; System.out.println("init called"); System.out.println("To toggle listeners on and off:\nF1 : MouseListener\nF2 : MouseMotionListener\nF3 : KeyListener\nF4 : FocusListener\nPress the arrow keys to move the square\n"); setSize(width, height); x = width / 2; y = height / 2; setBackground(Color.black); addMouseListener(this); addMouseMotionListener(this); addKeyListener(this); addFocusListener(this); trail = new Point[100]; for (int f = 0; f < trail.length; f++) { trail[f] = new Point(-1, -1); } sq = new Point(x, y); //mL = true; //mML = true; //kL = true; //fL = true; } public void start() { System.out.println("start called"); super.start(); } private void msg_mL(String s) { if (mL) System.out.println(s); } private void msg_mML(String s) { if (mML) System.out.println(s); } private void msg_kL(String s) { if (kL) System.out.println(s); } private void msg_fL(String s) { if (fL) System.out.println(s); } public void mousePressed(MouseEvent evt) { msg_mL("MouseEvent(Component source, MouseEvent.MOUSE_PRESSED , " + evt.getWhen() + ", " + evt.getModifiers() + "[" + MouseEvent.getMouseModifiersText(evt.getModifiers()) + "], " + evt.getX() + ", " + evt.getY() + ", " + evt.getClickCount() + ", " + evt.isPopupTrigger() + ", " + evt.getButton() + ");"); mouseButton = evt.getButton(); repaint(); } public void mouseReleased(MouseEvent evt) { msg_mL("MouseEvent(Component source, MouseEvent.MOUSE_RELEASED, " + evt.getWhen() + ", " + evt.getModifiers() + "[" + MouseEvent.getMouseModifiersText(evt.getModifiers()) + "], " + evt.getX() + ", " + evt.getY() + ", " + evt.getClickCount() + ", " + evt.isPopupTrigger() + ", " + evt.getButton() + ");"); mouseButton = evt.getButton(); repaint(); } public void mouseClicked(MouseEvent evt) { msg_mL("MouseEvent(Component source, MouseEvent.MOUSE_CLICKED , " + evt.getWhen() + ", " + evt.getModifiers() + "[" + MouseEvent.getMouseModifiersText(evt.getModifiers()) + "], " + evt.getX() + ", " + evt.getY() + ", " + evt.getClickCount() + ", " + evt.isPopupTrigger() + ", " + evt.getButton() + ");\n"); x = evt.getX(); y = evt.getY(); s = ""; mouseButton = evt.getButton(); repaint(); evt.consume(); } public void mouseEntered(MouseEvent evt) { msg_mL("MouseEvent(Component source, MouseEvent.MOUSE_ENTERED, " + evt.getWhen() + ", " + evt.getModifiers() + "[" + MouseEvent.getMouseModifiersText(evt.getModifiers()) + "], " + evt.getX() + ", " + evt.getY() + ", " + evt.getClickCount() + ", " + evt.isPopupTrigger() + ", " + evt.getButton() + ");\n"); } public void mouseExited(MouseEvent evt) { msg_mL("MouseEvent(Component source, MouseEvent.MOUSE_EXITED, " + evt.getWhen() + ", " + evt.getModifiers() + "[" + MouseEvent.getMouseModifiersText(evt.getModifiers()) + "], " + evt.getX() + ", " + evt.getY() + ", " + evt.getClickCount() + ", " + evt.isPopupTrigger() + ", " + evt.getButton() + ");\n"); } public void mouseDragged(MouseEvent evt) { msg_mML("MouseEvent(Component source, MouseEvent.MOUSE_DRAGGED" + ", " + evt.getWhen() + ", " + evt.getModifiers() + "[" + MouseEvent.getMouseModifiersText(evt.getModifiers()) + "], " + evt.getX() + ", " + evt.getY() + ", " + evt.getClickCount() + ", " + evt.isPopupTrigger() + ", " + evt.getButton() + ");"); } public void mouseMoved(MouseEvent evt) { msg_mML("MouseEvent(Component source, MouseEvent.MOUSE_MOVED" + ", " + evt.getWhen() + ", " + evt.getModifiers() + "[" + MouseEvent.getMouseModifiersText(evt.getModifiers()) + "], " + evt.getX() + ", " + evt.getY() + ", " + evt.getClickCount() + ", " + evt.isPopupTrigger() + ", " + evt.getButton() + ");"); x = evt.getX(); y = evt.getY(); trail[next].move(x, y); next++; if (next >= trail.length) next = 0; repaint(); evt.consume(); } public void keyPressed(KeyEvent evt) { msg_kL("KeyEvent(Component source, KeyEvent.KEY_PRESSED, " + evt.getWhen() + ", " + evt.getModifiers() + "[" + KeyEvent.getKeyModifiersText(evt.getModifiers()) + "], " + evt.getKeyCode() + "[" + KeyEvent.getKeyText(evt.getKeyCode()) + "], " + evt.getKeyChar() + ");"); // msg_kL(System.currentTimeMillis()+""); int i = evt.getKeyCode(); if (i == KeyEvent.VK_F1) mL = !mL; else if (i == KeyEvent.VK_F2) mML = !mML; else if (i == KeyEvent.VK_F3) kL = !kL; else if (i == KeyEvent.VK_F4) fL = !fL; else if (i == KeyEvent.VK_ENTER) { s = ""; repaint(); } else if (i == KeyEvent.VK_UP) { sq.move(sq.x, sq.y - 5); repaint(); } else if (i == KeyEvent.VK_DOWN) { sq.move(sq.x, sq.y + 5); repaint(); } else if (i == KeyEvent.VK_LEFT) { sq.move(sq.x - 5, sq.y); repaint(); } else if (i == KeyEvent.VK_RIGHT) { sq.move(sq.x + 5, sq.y); repaint(); } char c = evt.getKeyChar(); if (c != KeyEvent.CHAR_UNDEFINED) { s = s + c; repaint(); evt.consume(); } } public void keyReleased(KeyEvent evt) { msg_kL("KeyEvent(Component source, KeyEvent.KEY_RELEASED, " + evt.getWhen() + ", " + evt.getModifiers() + "[" + KeyEvent.getKeyModifiersText(evt.getModifiers()) + "], " + evt.getKeyCode() + "[" + KeyEvent.getKeyText(evt.getKeyCode()) + "], " + evt.getKeyChar() + ");\n"); } public void keyTyped(KeyEvent evt) { msg_kL("KeyEvent(Component source, KeyEvent.KEY_TYPED, " + evt.getWhen() + ", " + evt.getModifiers() + "[" + KeyEvent.getKeyModifiersText(evt.getModifiers()) + "], " + evt.getKeyCode() + "[" + KeyEvent.getKeyText(evt.getKeyCode()) + "], " + evt.getKeyChar() + ");"); } public void focusGained(FocusEvent evt) { msg_fL("FocusEvent(Component source, FocusEvent.FOCUS_GAINED, " + evt.isTemporary() + ");"); focus = "GAINED, isTemp: " + evt.isTemporary(); repaint(); } public void focusLost(FocusEvent evt) { msg_fL("FocusEvent(Component source, FocusEvent.FOCUS_LOST, " + evt.isTemporary() + ");"); focus = "LOST, isTemp: " + evt.isTemporary(); repaint(); } public void paint(Graphics g) { if (mouseButton == MouseEvent.BUTTON1) { g.setColor(Color.BLUE); //left } else if (mouseButton == MouseEvent.BUTTON2) { g.setColor(Color.MAGENTA); //middle } else if (mouseButton == MouseEvent.BUTTON3) { g.setColor(Color.WHITE); //right } g.drawLine(x, y, x, y - 10); g.drawLine(x, y, x + 10, y); g.setColor(Color.green); // Point p = this.getMousePosition(); g.drawString(x + "," + y, x - 20, y - 15); g.setColor(Color.orange); g.drawString(s, x + 2, y - 2); g.setColor(Color.yellow); g.drawString(focus, 1, 15); g.setColor(Color.RED); for (int f = 0; f < trail.length; f++) { g.fillOval(trail[f].x - 2, trail[f].y - 2, 4, 4); } g.setColor(Color.GREEN);//green g.fillRect(sq.x, sq.y, 20, 20); } }