在图形界面里面,假设我有若干个Panel,现在达到的目的就是点击其中一个就能显示为被选定,如果按shift键或者ctrl键也能相应的选定多个Panel组件,这样实现的思路是怎样的?

解决方案 »

  1.   

    比如选中的时候我就是用鼠标监听mousePressed,然后把背景色改为一个稍微醒目的颜色,alpha通道设置一下,然后mouseReleased时再改回原来的底色。这样就表示选中了,后台还有很多其他的任务做。
    现在有个问题:比如用户使用shift键或者ctrl键选择多个的时候,如何把键盘的监听与鼠标的监听结合起来?
      

  2.   

    其实也不难啊,写两个监听器分别监听键盘和鼠标事件
    当键盘某个键按下去的时候 设置一个boolean key = true;
    然后同时当鼠标按下去的时候,设置一个boolean mouse = true;
    然后执行程序的时候 
    if(key && mouse){
       .....//do whatever you want
    }
      

  3.   

    键盘的监听是怎么写?好像加在组件上面不行
    scanDocContentPane[k].addKeyListener(new KeyListener(){
        public void keyPressed(KeyEvent e) {
    if(e.getKeyCode() == KeyEvent.VK_SHIFT){               System.out.println("SSSS");
    }
       }
    @Override
    public void keyReleased(KeyEvent e) {
    }
    @Override
    public void keyTyped(KeyEvent e) {
            }
       });
      

  4.   

    键盘事件是怎么监听的?
    换成这样也监听不了 KeyHandler kyListener = new KeyHandler();
        addKeyListener(kyListener);
    class KeyHandler implements KeyListener{
    public void keyPressed(KeyEvent e) {
    System.out.println("ssaa");
     if(e.getKeyCode() == KeyEvent.VK_SHIFT){//
    System.out.println("SSSS");
    }
    }
    @Override
    public void keyReleased(KeyEvent e) {
    }
    public void keyTyped(KeyEvent e) {
    }

      

  5.   

     监听鼠标作,在鼠标动作发生时检查shift键的状态
      

  6.   

    在鼠标动作的时候,怎么检查shift键的状态?
      

  7.   

    貌似可以用按钮模拟JPanel...............给按钮加上背景图片.............