|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
|
[java] problemuccio MouseListener
Salve a tutti bella gente!!! Oggi mi sono messo in mente di fare un programmino stupidello per rappresentare (in qualche modo) un grafo (precisamente un grafo non orientato) e mi sono subito inbattuto in un problemuccio...
Ho creato un JPanel sul quale posso disegnare i nodi, che per semplicità rappresento come cerchiolini di colore ciano e bordo nero. Qui sotto riporto il codice che uso per disegnare i nodi sul pannello: Codice:
private class NodoGrafico extends JComponent{ private Coord coord; private int x, y; private Color bg = Color.CYAN; private Color fg = Color.BLACK; public NodoGrafico(Coord c){ super(); coord = c; highlight(); } public NodoGrafico(int x, int y){ super(); this.x = x; this.y = y; highlight(); } /** * I listener non vanno!!!!!! */ private void highlight(){ System.out.println("Ho addato i listener"); addMouseListener(new MouseAdapter() { @Override public void mouseEntered(MouseEvent e){ System.out.println("Sei nel nodo"); bg = Color.MAGENTA; } @Override public void mouseExited(MouseEvent e){ System.out.println("Uscito dal nodo"); bg = Color.CYAN; } }); } @Override public void paintComponent(Graphics g){ super.paintComponent(g); Graphics2D nodo = (Graphics2D)g; nodo.setColor(bg); nodo.fillOval(x, y, 9, 9); nodo.setColor(fg); nodo.drawOval(x, y, 9, 9); } public Coord getCoord(){ return coord; } } Ora...io vorrei che al passaggio del mouse sopra questo cerchietto esso cambi colore in modo che si "evidenzi". Per far ciò ho usato il MouseListener ma...sorpresa sorpresa...il pallino non cambia!!!! Sembra che il mouse non ci passi mai sopra.... ![]() ![]() Avete idee del perchè succeda una cosa del genere??? Saluti ![]()
__________________
iMac 27" 5K |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Codice:
private class NodoGrafico extends JComponent implements MouseListener {...} Ciao ![]() P.S.: se ti interessano i dettagli vedi -> qui Ultima modifica di banryu79 : 25-02-2008 alle 11:22. |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
|
Codice:
addMouseListener(new MouseAdapter() { @Override public void mouseEntered(MouseEvent e){ System.out.println("Sei nel nodo"); bg = Color.MAGENTA; } @Override public void mouseExited(MouseEvent e){ System.out.println("Uscito dal nodo"); bg = Color.CYAN; } });
__________________
iMac 27" 5K |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:56.