Ciao ho provato questo codice tratto da mokabyte.it, solo che il JFrame è tutto nero, qualcuno sa dirmi il perché?
grazie

codice:
import javax.swing.*; 
import java.awt.*; 
import java.awt.Color.*; 
import java.awt.event.*; 

public class Painter extends JPanel { 
  private int startXPoint = 0;  // coordinata x di partenza 
  private int endXPoint = 0;    // coordinata x di arrivo 
  private int startYPoint = 0;  // coordinata y di partenza 
  private int endYPoint = 0;    // coordinata y di arrivo 
  private boolean paint = false; 

  // ascoltatore del moto del mouse 
  class mMotionListener implements MouseMotionListener { 
    public void mouseDragged(MouseEvent e) { 
      // aggiorna le coordinate 
      startXPoint = endXPoint; 
      startYPoint = endYPoint; 
      endXPoint = e.getX(); 
      endYPoint = e.getY(); 
      // disegna 
      Painter.this.repaint(); 
    } 
    public void mouseMoved(MouseEvent e) { 
      // aggiorna le coordinate 
      startXPoint = endXPoint; 
      startYPoint = endYPoint; 
      endXPoint = e.getX(); 
      endYPoint = e.getY();  
    } 
  } 
  // ascoltatore dei pulsanti del mouse 
  class mListener implements MouseListener { 
    // i seguenti metodi sono richiesti dalla 
    // interfaccia MouseListener anche se non 
    // vengono utilizzati  
    public void mouseClicked(MouseEvent e) {} 
    public void mouseEntered(MouseEvent e) {} 
    public void mouseExited(MouseEvent e)  {} 

    // pulsante premuto 
    public void mousePressed(MouseEvent e) { 
      // attiva la modalita' di disegno 
      paint = true;  
    } 
    // pulsante rilasciato 
    public void mouseReleased(MouseEvent e) { 
      // disattiva la modalita' di disegno 
      paint = false; 
    } 
  } 
  // Costruttore della classe principale 
  public Painter() { 
    super(); 
    MouseListener ml = new mListener(); 
    addMouseListener(ml); 
    MouseMotionListener mml = new mMotionListener(); 
    addMouseMotionListener(mml); 
  } 
  public void paint(Graphics g) { 
    // se e' attiva la modalita' di disegno, traccia una riga 
    if(paint) 
      g.drawLine(startXPoint,startYPoint,endXPoint,endYPoint); 
  } 
 public static void main(String argv[]) { 
    Painter p = new Painter(); 
    JFrame f = new JFrame("Painter"); 
    f.getContentPane().add(p); 
    f.setSize(400,300); 
    f.setVisible(true); 
 } 
}