import java.awt.*; import java.awt.event.*; public class minipaint1Canvas extends Canvas { private int iBreite; private int iHöhe; private Image imBild; private Graphics grGrafik; private int modus; private int xStart,yStart; //Konstruktor public minipaint1Canvas(int iBreite, int iHöhe) { this.iBreite=iBreite; this.iHöhe=iHöhe; this.setSize(iBreite,iHöhe); this.addMouseListener(new minipaint1MouseListener()); this.addMouseMotionListener(new minipaint1MouseMotionListener()); } public void init() { imBild=createImage(iBreite,iHöhe); grGrafik=imBild.getGraphics(); } public void paint(Graphics g) { g.drawImage(imBild,0,0,this); } public void update(Graphics g) { paint(g); } public void Punkt() { modus=1; } public void Freihand() { modus=5; } public void Löschen() { grGrafik.setColor(Color.white); grGrafik.fillRect(0,0,iBreite,iHöhe); grGrafik.setColor(Color.black); repaint(); } class minipaint1MouseListener extends MouseAdapter { public void mousePressed(MouseEvent event) { int x = event.getX(); int y = event.getY(); switch (modus) { case 1: grGrafik.fillOval(x-1,y-1,3,3); break; default: xStart=x; yStart=y; } repaint(); } } class minipaint1MouseMotionListener extends MouseMotionAdapter { public void mouseDragged(MouseEvent event) { int x = event.getX(); int y = event.getY(); if (modus==5) { if (x!=xStart && y!=yStart) { grGrafik.drawLine(xStart,yStart,x,y); xStart=x; yStart=y; } } repaint(); } } }