2014-09-27 107 views
1

我有JPanel叫做panelCrtanje。 如果按下,我需要更改cBox狀態。如何檢查jPanel是否被按下?

final PadDraw drawPad = new PadDraw(); 
panelCrtanje.setLayout(new BorderLayout()); 
panelCrtanje.add(drawPad, BorderLayout.CENTER); 

它的工作原理之前,我用這個添加drawPad到panelCrtanje:

private void panelCrtanjeMousePressed(java.awt.event.MouseEvent evt) {           
slikaC.setSelected(true); 
} 

PadDraw看起來像這樣

public PadDraw(){ 
    setDoubleBuffered(false); 
    addMouseListener(new MouseAdapter(){ 
     public void mousePressed(MouseEvent e){ 
      oldX = e.getX(); 
      oldY = e.getY(); 
     } 
    }); 

    addMouseMotionListener(new MouseMotionAdapter()){ 
     public void mouseDragged(MouseEvent e){ 
      currentX = e.getX(); 
      currentY = e.getY(); 
      if(graphics2D != null) { 
      graphics2D.setStroke(new BasicStroke(18F,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND)); 
      graphics2D.drawLine(oldX, oldY, currentX, currentY); 
      repaint(); 
      oldX = currentX; 
      oldY = currentY; 
      } 
     } 

    }); 
} 
+2

如何檢查是否被按下的JPanel? ==從這裏發佈的代碼是不可能的,但有兩種選擇:1.閱讀有關MouseListener的Oracle教程,2.更快地發佈SSCCE/MCVE,更短的,可運行的,可編譯的 – mKorbel 2014-09-27 11:41:57

回答

1

您需要正確使用的MouseEvent。要使用它,該類需要實現MouseListener。然後,你需要創建一個監聽鼠標事件,像這樣:

panelCrtanje.addMouseListener(); 

然後使用所需的的MouseListener和MotionMouseListener

@Override 
public void mouseClicked(java.awt.event.MouseEvent e) { 
    // TODO In HERE do what you want to do 

} 

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

} 

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

} 

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

} 

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

當點擊鼠標時這些方法:的mouseClicked 當鼠標被按下但未被移動:mousePressed 當鼠標被釋放時:mouseReleased 當鼠標進入窗口時:mouseEntered 當鼠標離開窗口時:mouseExited

這就是你如何使用mouseListener做不同的事情。

0

您應該在panelCartanje上註冊MouseListener,我已經使用匿名內部類來執行此操作。

​​
0

這是解決

MouseAdapter adap = new MouseAdapter(){ 
     public void mousePressed(MouseEvent e) { 
     slikaC.setSelected(true); 
    } 
    };