2016-01-07 19 views
0

所以我一直在用鼠標點擊一個對象,然後用鼠標點擊的方法在屏幕上畫出一條線來嘗試打印線條。我從繪製元素的數組中填充元素。這是我的代碼:如何在點擊某個物體上的鼠標後在屏幕上打印某些內容?

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"); 
     } 
    }); 

不打印「某些文字」。我究竟做錯了什麼? :(這是我如何從數組繪圖元素:

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); 

} 

回答

0

如果你想要做的事點擊鼠標時,試試這個mehtond「的mousePressed(的MouseEvent E)」而不是「的mouseEntered(的MouseEvent E)」

試試這一個私人MouseClickListener

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

我試過這個它沒有工作:( – Matthew

+0

我編輯anwser.Try它:>) –

+0

它仍然沒有工作:(對象正在JFrame上附加的JPanel上繪製,但是當我嘗試單擊該對象或用我的鼠標輸入它,沒有什麼髮髻:/我用你的「新MapMouseClickListener()」替換了我的「新MouseAdapter(){..」。也許我應該這樣做不同?請幫助 – Matthew