Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 移动窗口/帧/程序时鼠标标记的滞后/跳过_Java - Fatal编程技术网

Java 移动窗口/帧/程序时鼠标标记的滞后/跳过

Java 移动窗口/帧/程序时鼠标标记的滞后/跳过,java,Java,我有我的程序未装饰,因为这一点,我仍然想移动没有标题栏的程序。下面的代码对我来说确实有效,但它像是延迟或跳过。它在一秒钟内运行良好跳过,运行良好,跳过。。。等等。目前,我已经在鼠标中删除了我的if语句。有没有更好的方法来实现mousedragged来移动我的窗口/框架/程序 addMouseMotionListener(new MouseMotionListener() { @Override public v

我有我的程序未装饰,因为这一点,我仍然想移动没有标题栏的程序。下面的代码对我来说确实有效,但它像是延迟或跳过。它在一秒钟内运行良好跳过,运行良好,跳过。。。等等。目前,我已经在鼠标中删除了我的if语句。有没有更好的方法来实现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);
                    }
                }           

            });
addMouseMotionListener(新的MouseMotionListener(){
@凌驾
公共无效鼠标标记(最终鼠标事件e){
//TODO自动生成的方法存根
Runnable Runnable=新的Runnable(){
公开募捐{
int posX=0;
int-posY=0;
int posx=e.getLocationOnScreen().x;
int posy=e.getLocationOnScreen().y;
设置位置(posx-posx,posy-posy);
}};
SwingUtilities.invokeLater(可运行);
}
public void mouseMoved(MouseEvent e){
//TODO自动生成的方法存根
如果(设置sini.jmenuauto().equals(“on”)){
getJMenuBar().setVisible(例如getY()<50);
}
}           
});

尝试不使用
调用器()


此外,我认为
posX/Y
应该是类的字段,并设置在
mousePressed()
中。因为它们站在这里,所以没有任何用处……

我后来在没有调用的情况下尝试了它,而且也没有任何效果。我在另一篇推荐它的帖子中找到了invokelater。关于在mousePressed中设置posX,你试过我的其他建议吗?另外,您使用的是什么版本的Java?你在什么平台上测试这个?所以问题出在我运行的表代码上。我最近做了一个新的程序,使用了你提到的代码调整,它的运行没有延迟。我有一个计时器,在程序中更新,这给我带来了麻烦。然后我的表每秒更新30次,每次更新都是使用ini4j从ini文件中提取信息,而ini4j恰好也在网络上。所以你的代码救不了我,我还有其他问题…:(不过谢谢你的帮助!至少在我的新程序中是有效的。