0

我的程序没有装饰,因此我仍然想在没有标题栏的情况下移动程序。下面的代码对我来说确实有效,但它喜欢滞后或跳过。它确实可以正常工作一秒钟,跳过,工作正常,跳过......等等。目前我的鼠标中的 if 语句已关闭。有没有更好的方法来实现鼠标拖动来移动我的窗口/框架/程序?

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);
                    }
                }           

            });
4

1 回答 1

1

尝试不使用invokeLater().

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

于 2012-12-21T16:46:42.097 回答