0

このため、タイトルバーなしでプログラムを移動したいのです。以下のコードは機能しますが、ラグやスキップが好きです。スキップ、正常に動作、スキップなど、1秒間は正常に動作します。現在、マウスの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 に答える