import javax.swing.JFrame; import java.awt.event.*; import java.awt.*; import java.util.*; public class DotFrame4 extends JFrame { private java.util.List myDots; public DotFrame4(){ myDots = new ArrayList(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(400, 400); setTitle("DotFrame"); this.addMouseListener( new MouseAdapter(){ public void mouseClicked(MouseEvent e){ drawDot( e.getX(), e.getY() ); } }); this.addKeyListener( new KeyAdapter(){ public void keyTyped(KeyEvent e){ drawKey( e.getKeyChar() ); } }); setVisible(true); setAlwaysOnTop(true); setAlwaysOnTop(false); } public void drawDot(int x, int y){ Point p = new Point(x,y); myDots.add( p ); //repaint();//getGraphics().fillOval(x-5, y-5,10,10); repaint(x-5, y-5,10,10); } public void paint(Graphics g){ g.setColor(Color.RED); for(Point p: myDots) g.fillOval(p.x-5, p.y-5,10,10); } private void drawKey(char c){ getGraphics().drawString(""+c, 50,50); }; }