我正在Swing中开发一个应用程序。当我连接了两台显示器时,应用程序将不会显示。图标出现在统一边栏中,但窗口无处可见。
我回到基础并从Oracle tuorials
运行HelloWorldSwing.java存在同样的问题。然后我发现如果我把Monitor 1放在左边,HelloWorld会出现在左上角。
当主监视器在右侧时,如何让HelloWorldSwing(以及一般的Swing应用程序)显示在Unity中?
我的显示配置:显示器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
答案 0 :(得分:0)
好的,这很简单
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),则单位顶部栏会遮挡窗口的关闭/最小化/最大化按钮。
我想一些特定平台的东西需要与统一顶栏/侧栏集成。