2016-01-07 1 views
0

J'ai donc essayé d'imprimer une ligne après avoir cliqué avec une souris sur un objet que j'ai déjà peint à l'écran avec la méthode mouseClicked. Je dessine des éléments d'une liste arrayList remplie d'éléments drawable. Voici mon code:Comment imprimer quelque chose sur l'écran après avoir cliqué avec une souris sur un objet?

ShapeSh s = new VertexG(x,y,Window.graph2); 
    ((VertexG) s).addMouseListener(new MouseAdapter() { 
     public void mouseEntered(MouseEvent e){ 
      ShapeSh z = (VertexG)e.getSource(); 
      System.out.println("some text"); 
     } 
    }); 

Aucun "texte" n'est imprimé. Qu'est-ce que je fais mal? :(Voici comment je dessine les éléments du tableau:

protected void paintComponent(Graphics g) { 

    super.paintComponent(g); 
    for(ShapeSh shape: drawingList){ 
     shape.drawThis(g); 
    } 
} 

public void drawThis(Graphics g){  

    g.setColor(c); 
    g.fillOval(x,y,2*radius,2*radius); 
    g.setFont(f); 
    g.setColor(c2); 
    g.drawString(value, x-8, y-8); 

} 

Répondre

0

Si vous voulez faire quelque chose en cliquant la souris, essayez cette mehtond « mousePressed (MouseEvent e) » au lieu de « mouseEntered (MouseEvent e) »

.

Avoir essayer celui-ci

private class MapMouseClickListener implements MouseInputListener { 

    @Override 
    public void mouseClicked(MouseEvent e) { 

     int clickButtonType = e.getButton(); 
     // BUTTON3 is the right mouse button. 
     if (clickButtonType == MouseEvent.BUTTON3) { 
      System.out.println("some text");// and whatever you want to active. 
     } 
    } 

    @Override 
    public void mouseEntered(MouseEvent e) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void mouseExited(MouseEvent e) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void mousePressed(MouseEvent e) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void mouseReleased(MouseEvent e) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void mouseDragged(MouseEvent arg0) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void mouseMoved(MouseEvent arg0) { 
     // TODO Auto-generated method stub 

    } 
} 
+0

J'ai essayé cette une MouseClickListener privée il ne fonctionne pas :(Je – Matthew

+0

édité mon anwser.Try il:..>) –

+0

il ne marche toujours pas :(Les objets sont dessinés sur le JPanel attaché à JFrame, mais quand j'essaie de cliquer sur cet objet ou entrez-le avec ma souris, rien ne se passe:/J'ai remplacé mon "nouveau MouseAdapter() {.." par votre "nouveau MapMouseClickListener()". Peut-être que je devrais le faire différemment? S'il vous plaît aider – Matthew