main() data = input() data = process data() output(data)
|
|
|
|
$ echo 100 400 100 100 400 400 100 400 | java DCShow 15
|
|
without jumping in and out of the program.
EventObject
class is the event hierarchy
root.
public class EventObject protected Object source EventObject(Object source) Object getSource() String toString()
|
|
EventListener
is the root of the
event-listener hierarchy.
interface MouseListener extends EventListener void mouseClicked(MouseEvent e) void mouseEntered(MouseEvent e) void mouseExited(MouseEvent e) void mousePressed(MouseEvent e) void mouseReleased(MouseEvent e)
class LineMaker implements MouseListener mouseClicked(MouseEvent e) xCoords[n] = e.getX() yCoords[n++] = e.getY() repaint()
mouseEntered(MouseEvent e) System.err.println("Enter the mouse") mouseExited(MouseEvent e) System.err.println("Exit the mouse") mousePressed(MouseEvent e) System.err.println("Mouse pressed") mouseReleased(MouseEvent e) System.err.println("Mouse released")
addMouseListener()
is defined in Component.
In the panel:private int xCoord[], yCoord[], n DragonPanel() setMouseListener( new MouseHandler(this)) addPoint(int x, int y) xCoord[n] = x xCoord[n++] = y repaint()
|
In the handler:private JPanel panel MouseHandler(JPanel p) panel = p mouseClicked(MouseEvent e) panel.addPoint( e.getX(), e.getY())
|
|
In the panel:private int xCoord[], yCoord[], n DragonPanel() setMouseListener( new MouseHandler(this)) private class MouseHandler extends MouseListener mouseClicked(MouseEvent e) xCoord[n] = x xCoord[n++] = y repaint()
|
class DragonPanel extends JPanel implements MouseListener private int xCoord[], yCoord[], n DragonPanel() setMouseListener(this) mouseClicked(MouseEvent e) xCoord[n] = x xCoord[n++] = y repaint()
|
|
interfaceKeyListener
extends EventListener void keyPressed(KeyEvent e) void keyReleased(KeyEvent e) void keyTyped(KeyEvent e)
class KeyHandler implements KeyListener keyTyped(KeyEvent e) int d = Character.digit(e.getKeyChar(), 16) if (d > -1) curveOrder(d) repaint()
|
|
|
|