当移动到Mac OS X上的另一个屏幕/桌面/显示器时,Java Swing应用程序窗口将消失

当移动到Mac OS X上的另一个屏幕/桌面/显示器时,Java Swing应用程序窗口将消失,java,macos,swing,Java,Macos,Swing,每当我用鼠标将Java Swing应用程序窗口从一个监视器拖动到另一个监视器时,它就会消失。当我拖动它时,它是可见的,但当我释放鼠标按钮时,它立即消失。我宁愿窗户没有消失。为什么它会消失 当我激活任务控制时,Swing窗口出现在我拖动它的桌面底部。停用任务控制会使其滑出屏幕底部 我运行哪个JavaSwing应用程序并不重要。对于那些需要代码的人,这里有一个简单的Java Swing应用程序,它展示了我所描述的行为,请欣赏: import java.awt.*; import javax.swin

每当我用鼠标将Java Swing应用程序窗口从一个监视器拖动到另一个监视器时,它就会消失。当我拖动它时,它是可见的,但当我释放鼠标按钮时,它立即消失。我宁愿窗户没有消失。为什么它会消失

当我激活任务控制时,Swing窗口出现在我拖动它的桌面底部。停用任务控制会使其滑出屏幕底部

我运行哪个JavaSwing应用程序并不重要。对于那些需要代码的人,这里有一个简单的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(本文撰写时的最新版本):

请尝试以下操作:

  • 转到系统首选项>显示>排列
  • 将两个矩形完全对齐
  • 看看它是否有效
  • 如果没有,请更改2个矩形的顺序(以及监视器或以不同方式插入)

  • 希望这有帮助,但我不确定这是否是解决方案。

    步骤:在frame.setVisible(true)之前;您可以在下面添加两行代码,然后再次测试

    帧设置位置(500500);
    frame.setAlwaysOnTop(真)

    第二个监视器是否有较大的y偏移?当我的第二个显示器的顶部
    y
    坐标相对于我的第一个显示器为负时,我在使用JDK 7/8进行Swing时遇到了问题。这是一个线索!我将显示器重新排列成并排排列,而不是上下排列,我可以按预期在屏幕上拖动窗口!上下排列的一个有趣方面是,一旦我尝试将窗口拖动到另一个桌面,窗口就永远消失了。我可以进入任务控制,抓取窗口并将其移动到另一个(原始)桌面,但它也会“下沉”到屏幕外。我想知道是否有解决办法……同样的问题——yworks yed(一个普通的java应用程序)将在我的笔记本电脑显示屏上启动,但当我试图将它拖到外部显示器上时,噗!跑了。让我抓狂。检查视频驱动程序和JRE是否是最新的。可以使用当前的JDK,但可以使用旧的JRE。也许您可以尝试设置opengl加速度-Dsun.java2d.opengl=true。也许您可以在其中一个组件上使用
    组件.getLocationOnScreen()
    ,并定期将位置输出到
    系统.out
    ?可能更容易确定Swing认为辅助屏幕上的位置是什么。。。
    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