Java Swing应用程序赢得';当第二个监视器位于左侧时,t统一显示

Java Swing应用程序赢得';当第二个监视器位于左侧时,t统一显示,java,swing,x11,ubuntu-unity,Java,Swing,X11,Ubuntu Unity,我正在用Swing开发一个应用程序。当我连接了两个监视器时,应用程序将不显示。图标出现在unity侧栏中,但看不到窗口 我回到了基础,从Oracle tuorials运行HelloWorldSwing.java 同样的问题也存在。然后我发现如果我把监视器1放在左边,HelloWorld就会出现在左上角 当主显示器位于右侧时,如何使HelloWorldSwing(以及通常的Swing应用程序)以统一的方式显示 我的显示器配置:监视器1(笔记本电脑屏幕)1280x800 监视器2(“未知”)144

我正在用Swing开发一个应用程序。当我连接了两个监视器时,应用程序将不显示。图标出现在unity侧栏中,但看不到窗口

我回到了基础,从Oracle tuorials运行HelloWorldSwing.java

同样的问题也存在。然后我发现如果我把监视器1放在左边,HelloWorld就会出现在左上角

当主显示器位于右侧时,如何使HelloWorldSwing(以及通常的Swing应用程序)以统一的方式显示

我的显示器配置:监视器1(笔记本电脑屏幕)1280x800 监视器2(“未知”)1440x900

监视器2在左边。 我的~/.xprofile中有以下内容:

xrandr --newmode "1680x1050" 146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync
xrandr --addmode VGA1 1680x1050
xrandr --newmode "1440x900" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
xrandr --addmode VGA1 1440x900
好吧,这很简单

private static void createAndShowGUI() {
    //Create and set up the window.
    JFrame frame = new JFrame("HelloWorldSwing");
    frame.setLocation (50, 50);
    ...
setLocation可以很好地处理多个监视器。只是当监视器2离开时,默认位置(如果未调用setLocation)显示在屏幕外

如预期,0,0位于左监视器的左上角。但是,如果使用setLocation(0,0),窗口的关闭/最小化/最大化按钮将被unity顶部栏遮挡

我想需要一些特定于平台的东西来集成unity顶部栏/侧栏