您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何最好地定位Swing GUI?

如何最好地定位Swing GUI?

在我看来,屏幕中间的一个GUI看起来是这样的。我一直在等待它们消失,真正的GUI出现!

从Java 1.5开始,我们可以使用Window.setLocationByPlatform(boolean)。哪一个..

设置此窗口是否应在下一次使该窗口可见时显示在本机窗口系统的认位置还是当前位置(由getLocation返回)。此行为类似于未通过编程设置其位置而显示的本机窗口。如果未明确设置窗口的位置,大多数窗口系统会级联窗口。一旦窗口显示在屏幕上,便确定了实际位置。

看一下这个示例的效果,该示例将3个GUI置于OS选择的认位置-在Windows 7,Linux和Gnome&Mac OS X上。

Windows 7上的堆叠式Windows 在此处输入图片说明 Mac OS X上的堆叠式视窗

(3个)3个GUI整齐地堆叠在一起。对于最终用户而言,这代表了“最不惊奇的道路”,因为这是操作系统可能放置认纯文本编辑器的3个实例的方式(或者其他任何方式)。感谢Linux和Mac的rashgod。图片

这是使用的简单代码

import javax.swing.*;

class WhereToPutTheGui {

    public static void initGui() {
        for (int ii=1; ii<4; ii++) {
            JFrame f = new JFrame("Frame " + ii);
            f.setDefaultCloSEOperation(JFrame.DISPOSE_ON_CLOSE);
            String s =
                "os.name: " + System.getProperty("os.name") +
                "\nos.version: " + System.getProperty("os.version");
            f.add(new JTextArea(s,3,28));  // suggest a size
            f.pack();
            // Let the OS handle the positioning!
            f.setLocationByPlatform(true);
            f.setVisible(true);
        }
    }

    public static void main(String[] args) {
        SwingUtilities.invokelater( new Runnable() {
            public void run() {
                try {
                    UIManager.setLookAndFeel(
                        UIManager.getSystemLookAndFeelClassName());
                } catch (Exception useDefault) {}
                initGui();
            }
        });
    }
}
其他 2022/1/1 18:26:58 有434人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶