每当我用鼠标将它从一个监视器拖到另一个监视器时,我的 Java Swing 应用程序窗口就会消失。当我拖动它时它是可见的,但当我释放鼠标按钮时它会立即消失。我宁愿窗口没有消失。为什么会消失?
当我激活 Mission Control 时,Swing 窗口出现在我将其拖动到的桌面底部。停用 Mission Control 会使其从屏幕底部滑出。
我运行哪个 Java Swing 应用程序并不重要。对于那些想要代码的人,这里有一个简单的 Java Swing 应用程序,它展示了我正在描述的行为,请欣赏:
import java.awt.*;
import javax.swing.*;
class SimpleSwing {
public static void main(final String... args) {
SwingUtilities.invokeLater(new Runnable() {
@Override public void run() {
JFrame frame = new JFrame();
JPanel contentPane = new JPanel();
contentPane.add(new JLabel("Hello World!"));
frame.setContentPane(contentPane);
frame.pack();
frame.setVisible(true);
}
});
}
}
我的环境是 Mac OS X Yosemite(撰写本文时最新)上的 Oracle Java JDK(撰写本文时最新):
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
OS X Yosemite Version 10.10.2 (14C1510)
Darwin Kernel Version 14.1.0
最佳答案
步骤:在frame.setVisible(true)之前;您可以在下面添加两行代码,然后再次测试。
frame.setLocation(500, 500); frame.setAlwaysOnTop(true);
关于在 Mac OS X 上移动到另一个屏幕/桌面/显示器时,Java Swing 应用程序窗口消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29158029/