2014-09-27 80 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); 
    } 
    };