java 中事件处理
我需要处理同时处理左键单击和双击,以及右键单击事件,
我用的是
public void mouseClicked(MouseEvent e)
{
//判断为单击事件
if(e.getClickCount() ==1&&e.getClickCount() !=2)
{
adaptee.jt1_mouseClicked1(e);
}
//判断双击事件
if (e.getClickCount()==2)
{
adaptee.jt1_mouseClicked(e);
}
}
public void mouseReleased(MouseEvent e)
{
//判断为右键事件
if (e.getClickCount() == 1 && SwingUtilities.isRightMouseButton(e))
{
adaptee.jt1_mouseReleased(e);
}
}
不过好象有冲突,该怎么解决呢?
问题点数:50、回复次数:8Top
1 楼crane_hit(柳絮)回复于 2004-12-03 08:53:28 得分 10
只在mouseClicked()中作所有判断,不要同时使用mouseReleased()。Top
2 楼prok(换换口味)回复于 2004-12-03 11:21:09 得分 10
做个标志。判断。Top
3 楼greenmars2004(火球)(业余程序员)(我会的不多,不过都可以告诉你)回复于 2004-12-03 11:25:20 得分 0
UPTop
4 楼woowoowoo()回复于 2004-12-03 11:29:57 得分 0
恩,改成这个就OK了
public void mouseClicked(MouseEvent e)
{
if(e.getClickCount() ==1&&SwingUtilities.isLeftMouseButton(e) )
{
adaptee.jt1_mouseClicked1(e);
}
if (e.getClickCount() == 1 && SwingUtilities.isRightMouseButton(e))
{
adaptee.jt1_mouseClicked2(e);
}
if (e.getClickCount()==2&&SwingUtilities.isLeftMouseButton(e))
{
adaptee.jt1_mouseClicked(e);
}
}Top
5 楼lhz_9712(晃晃悠悠)回复于 2004-12-03 11:37:38 得分 10
mouseClicked最好不要和mouseReleased或mousePressed混用,因为clicked事件已经包含了一定是先press后release,或者你可以有点标记处理一下,已经做过的就不用再重复了Top
6 楼woowoowoo()回复于 2004-12-03 11:50:22 得分 0
什么叫标志处理啊,我按上面做的以后没有报错啊,能具体一点吗?Top
7 楼woowoowoo()回复于 2004-12-04 18:26:46 得分 0
还有要是在树中 有了 public void treeExpanded(TreeExpansionEvent e) {}
然后在加click 的事件的时候会不会有冲突啊,我加了个单击事件后,老是点击结点的时候抛出空指针异常,我在click 事件里面有
TreePath tp = tree.getPathForLocation(e.getX(), e.getY());
String kk = tp.getLastPathComponent().toString();
是不是展开结点的时候也触发了click 事件,但是没有获得 值啊Top
8 楼xuan9932()回复于 2004-12-05 16:38:43 得分 20
用valuechangedTop




