【发布时间】:2014-04-09 17:40:08
【问题描述】:
我想要的是:当鼠标移动到单元格(JPanels)上并单击左键(在移动鼠标时按住),单元格应该改变状态。正是您在画布上使用鼠标绘图时所期望的。我就是这样做的:
this.addMouseMotionListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent arg0) {
if(SwingUtilities.isLeftMouseButton(arg0)) {
setItem(MapItems._W_);
} else {
setItem(MapItems.___);
}
DrawableCell.this.repaint();
}
});
这不起作用(没有任何反应)。使用 mouseMoved() 并没有什么不同。
唯一能做任何事情的是:
public void mouseMoved(MouseEvent arg0) {
if(arg0.isControlDown()) {
setItem(MapItems._W_);
} else {
setItem(MapItems.___);
}
DrawableCell.this.repaint();
}
});
问题在于,由于 mouseMoved 多次触发,因此单元格的状态正在迅速变化,结果是随机的。
怎么做?
【问题讨论】:
标签: java awt mouseevent mouse-listeners