接着昨天没有解决的问题继续提问了,我想在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(“我想是哪里错了”);这一句了,不对吗?