Java 如何检查jPanel是否被按下?
我让JPanel打电话给Java 如何检查jPanel是否被按下?,java,swing,jpanel,Java,Swing,Jpanel,我让JPanel打电话给panelCrtanje。 如果按下,我需要更改cBox状态 final PadDraw drawPad = new PadDraw(); panelCrtanje.setLayout(new BorderLayout()); panelCrtanje.add(drawPad, BorderLayout.CENTER); 在我使用以下方法将drawPad添加到panelCrtanje之前,它可以工作: private void panelCrtanjeMousePres
panelCrtanje
。
如果按下,我需要更改cBox状态
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);
}
帕德劳看起来像这样
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;
}
}
});
}
你需要正确使用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
单击鼠标时:鼠标单击
按住鼠标但不移动时:按住鼠标
释放鼠标时:鼠标释放
当鼠标进入窗口时:鼠标已插入
当鼠标离开窗口时:mouseExited
这就是如何使用mouseListener来做不同的事情。您应该在
panelCartanje
上注册一个mouseListener
,我使用了一个匿名的内部类来做这件事
panelCrtanje.addMouseListener(new MouseAdapter(){
@Override
public void mousePressed(MouseEvent e) {
/// cBox state change goes here . . .
}
});
这就是解决办法
MouseAdapter adap = new MouseAdapter(){
public void mousePressed(MouseEvent e) {
slikaC.setSelected(true);
}
};
如何检查是否按下了jPanel?==从这里发布的代码是不可能的,但有两个选择1。阅读Oracle关于MouseListener的教程,2。为了获得更好的帮助,请尽快发布SSCCE/MCVE,简短、可运行、可编译