in pratica ho aggiunto il mouselistener al pannellocodice:class pannello1 extends JPanel implements MouseMotionListener { public void paintComponent(Graphics g){ super.paintComponent(g); g.setFont(Arial_font_plain_14); g.setColor(Color.black); g.drawString(s1,10,20); g.drawString(s2,10,35); g.setColor(Color.blue); g.drawString(s3,10,50); g.setColor(Color.red); g.drawString(s4,10,65); g.setColor(Color.green); g.drawString(s5,10,80); setBackground(Color.white); tk=Toolkit.getDefaultToolkit(); img=tk.getImage("checks.gif"); img1=tk.getImage("Mappa_arena.gif"); tracker=new MediaTracker(this); tracker.addImage(img,0); tracker.addImage(img1,1); try { tracker.waitForAll(); } catch (InterruptedException e) { System.out.println("Errore, impossibile caricare le immagini"); JOptionPane.showMessageDialog (null, "Impossibile caricare le immagini", "Errore", JOptionPane.ERROR_MESSAGE); } g.drawImage(img,323,0,this); g.drawImage(img1,0,100,this); addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) {} public void mouseClicked(MouseEvent e) { int x=e.getX(); int y=e.getY(); // if (trova(x,y)>=1 && (e.getClickCount() >= 2) ) { ordina = new OrdinaPosti(); ordina.show(); } } }); addMouseMotionListener(this); } public void mouseDragged(MouseEvent e){ } public void mouseMoved(MouseEvent e) { int x = e.getX(); int y = e.getY(); if (trova(x, y) >= 0) setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); else setCursor(Cursor.getDefaultCursor()); } }