我的程序未修饰,因此我仍然希望在没有标题栏的情况下移动程序。以下代码对我来说确实有效,但它像滞后或跳过。它确实工作正常一秒跳过,工作正常,跳过...等等。目前我有我的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);
}
}
});
答案 0 :(得分:1)
尝试不使用invokeLater()
。
此外,我认为posX/Y
应该是该类的字段,而是设置在mousePressed()
中。当他们站在这里时,他们没有用......