alla costante STRUMENTO_PENNELLO potete sostituire 1, se pensate di compilare la classe. Il problema si presenta nella classe privata GestoreDisegnicodice:public class Lavagna extends Canvas { private int width; private int height; private int sideWidth; private Image sfondo; private boolean sfondoCaricato; private boolean disegna; private int strumentoSelezionato; private int start_x; private int start_y; private int x; private int y; public Lavagna(int height, int width, int sideWidth) { this.width = width; this.height = height; this.sideWidth = sideWidth; disegna = false; sfondoCaricato = false; sfondo = null; setLocation(sideWidth,0); setSize(width-sideWidth,height/2); setBackground(Color.white); GestoreDisegni gestoreDisegni = new GestoreDisegni(this); addMouseListener(gestoreDisegni); addMouseMotionListener(gestoreDisegni); } public void paint (Graphics g) { if (sfondo!=null) { g.drawImage(sfondo,0,0,width,height,this); } else { super.paint(g); if (disegna) { switch (strumentoSelezionato) { case LavagnaPanel.STRUMENTO_PENNELLO: g.drawLine(start_x,start_y,x,y); } } } } public void setSfondo(Image sfondo) { this.sfondo = sfondo; } public void setDisegna (boolean disegna) {this.disegna = disegna;} public void setStrumento (int strumento) { strumentoSelezionato = strumento; } public void setStartX (int x) {start_x = x;} public void setStartY (int y) {start_y = y;} public void setX (int x) {this.x = x;} public void setY (int y) {this.y = y;} // * * * * * * * * * * * * * * * * * * * * * * * * * * private class GestoreDisegni implements MouseListener,MouseMotionListener { private boolean disegna; private Lavagna lavagna; private Graphics g; private int start_x; private int start_y; public GestoreDisegni (Lavagna l) { lavagna = l; g = lavagna.getGraphics(); disegna = false; //DEBUG System.out.println(g==null); } public void mouseClicked(MouseEvent e) { } public void mousePressed(MouseEvent e) { if (e.getButton()==1) { lavagna.setDisegna(true); lavagna.setStartX(e.getX()); lavagna.setStartY(e.getY()); } } public void mouseReleased(MouseEvent e) { lavagna.setDisegna(false); } public void mouseMoved(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseDragged(MouseEvent e){ lavagna.setX(e.getX()); lavagna.setY(e.getY()); lavagna.repaint(); } } }