日期:2014-05-20  浏览次数:20748 次

烦恼的组合键
接着昨天没有解决的问题继续提问了,我想在jlist里监听一个ctrl+左键单击的事件,我这里的想法是用一个key做为一个中间值。
[code]public   void   addkeyListener(KeyEvent   e){
if(e.getModifiers()==e.CTRL_MASK   )    
  key=true;//判断是否是ctrl按下
 
}
public   void   keyPressed(KeyEvent   e)
{if(e.getModifiers()==e.CTRL_MASK   )    
  key=true;//判断是否是ctrl按下
}
public   void   keyReleased(KeyEvent   e){
key=false;//判断是否已经抬起
[/code]
这里完成的是键盘的监听。[code]list.addMouseListener(new   MouseAdapter()   {public   void   mouseClicked(MouseEvent   e)  
  {   if(   e.getModifiers()   ==   e.BUTTON1_MASK&&   !key   )
{}//判断是否是左键单击以及key是否为true
else   System.out.println(“我想是哪里错了”);
}});     [/code]
我觉得是可行的,但结果却总是出乎意料:我想是哪里错了
各位大大能帮我指明吗?

------解决方案--------------------
if( e.getModifiers() == e.BUTTON1_MASK&& !key )
{}//判断是否是左键单击以及key是否为true
为什么是!key,你不是要判断是否为true吗?应该是key啊,!key,当crlt按下时 你的
if( e.getModifiers() == e.BUTTON1_MASK&& !key )相当于if( e.getModifiers() == e.BUTTON1_MASK&& false)他当然走System.out.println(“我想是哪里错了”);这一句了,不对吗?