键盘事件可以触发,但鼠标移动事件触发不了???就是进不了mouseMoved,为什么???
我用相同的方法作了个小例子,没问题,但一拥到这里就进不去。头痛。请大侠帮忙。import java.awt.Frame;import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.Toolkit;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
 
public class KVMFullScreen extends JDialog implements KeyListener {
    public static KVMFullScreen fullScreen = null;
    private KVMInternalFrame internalFrame;    private ImagePane imagePane;
    /** 工具栏  */
    KVMToolBar toolbar;
    private KVMFullScreen(Frame owner, boolean modal) {
        super(owner, modal);
        this.setUndecorated(true);
        try {
            setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
            jbInit();
             pack();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }
    private void jbInit() throws Exception {
            this.addKeyListener(this);
 
           this.addMouseMotionListener(new KVM_mouseMotionAdapter(this));
    }    public void setInternalFrame(KVMInternalFrame internalFrame) {
        this.internalFrame = internalFrame;
        //将远程桌面对象贴在自己界面上
        imagePane = internalFrame.getImagePane();
        this.getContentPane().add(imagePane, BorderLayout.CENTER);
    }    public KVMInternalFrame getInternalFrame() {
        return internalFrame;
    }    /**
     * 获取实例
     */
    public static KVMFullScreen getInstance(Frame frame) {
        if (fullScreen == null) {
            fullScreen = new KVMFullScreen(frame, true);
        }
        return KVMFullScreen.fullScreen;
    }    /**
     *  显示
     */
    public void fullSize() {
        if (KVMFullScreen.fullScreen == null) {
            return;
        }
        fullScreen.setSize(Toolkit.getDefaultToolkit().getScreenSize());
    }
    public void keyTyped(KeyEvent e) {
    }    public void keyPressed(KeyEvent e) {
        if (e.getKeyCode() == KeyEvent.VK_F8) {
            //退出全屏状态
            //this.getContentPane().removeAll();
            this.internalFrame.setImagePane(imagePane);
            this.hide();
        }
        this.imagePane.keyPressed(e);    }    public void keyReleased(KeyEvent e) {
    }    class KVM_mouseMotionAdapter extends MouseMotionAdapter {
        private KVMFullScreen adaptee;
        KVM_mouseMotionAdapter(KVMFullScreen adaptee) {
            this.adaptee = adaptee;
        }
        public void mouseMoved(MouseEvent e) {
           // adaptee.this_mouseMoved(e);
           System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
      if (e.getY() < 120) {
          adaptee.getContentPane().removeAll();
          toolbar=new KVMToolBar(adaptee.getInternalFrame());
          adaptee.getContentPane().add(toolbar,BorderLayout.NORTH);
      } else {
          System.out.println("come in elseaaaaaaaaaaaaaaaaaaaaaa");
         // this.getContentPane().removeAll();
          //this.getContentPane().add(this.titleBox, BorderLayout.NORTH);
          //this.getContentPane().add(this.mainFrm, BorderLayout.CENTER);
          //this.getContentPane().remove(this.titleBox);
      }    }
    }}

解决方案 »

  1.   

    public KVM_mouseMotionAdapter(KVMFullScreen adaptee) {
                this.adaptee = adaptee;
            }
      

  2.   

    if (e.getY() < 120) {
              adaptee.getContentPane().removeAll();
              toolbar=new KVMToolBar(adaptee.getInternalFrame());
              adaptee.getContentPane().add(toolbar,BorderLayout.NORTH);
          }
    这段程序错!
    换成System.out.println("haha");