移动窗口/框架/程序时,mousedragged滞后/跳过

时间:2012-12-21 16:40:14

标签: java

我的程序未修饰,因此我仍然希望在没有标题栏的情况下移动程序。以下代码对我来说确实有效,但它像滞后或跳过。它确实工作正常一秒跳过,工作正常,跳过...等等。目前我有我的if语句在mousemoved关闭。有没有更好的方法来实现mousedragged来移动我的窗口/框架/程序?

addMouseMotionListener(new MouseMotionListener() {                  

            @Override
            public void mouseDragged(final MouseEvent e) {
                // TODO Auto-generated method stub
                Runnable runnable = new Runnable() {
                    public void run() {
                        int posX=0;
                        int posY=0;
                        int posx=e.getLocationOnScreen().x;
                        int posy=e.getLocationOnScreen().y;
                        setLocation (posx - posX, posy - posY);
                    }};
                   SwingUtilities.invokeLater(runnable);                                       
                }


                public void mouseMoved(MouseEvent e) {
                    // TODO Auto-generated method stub
                    if (SettingsIni.jmenuauto().equals("on")){
                        getJMenuBar().setVisible(e.getY() < 50);
                    }
                }           

            });

1 个答案:

答案 0 :(得分:1)

尝试不使用invokeLater()

此外,我认为posX/Y应该是该类的字段,而是设置在mousePressed()中。当他们站在这里时,他们没有用......