当前位置: 首页 > 面试题库 >

如何最好地定位Swing GUI?

陈允晨
2023-03-14
问题内容

在另一个线程中,我表示我喜欢通过执行以下操作来居中GUI:

JFrame frame = new JFrame("Foo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new HexagonGrid());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);

但是安德鲁·汤普森(Andrew Thompson)有不同的看法,而是打电话给

frame.pack();
frame.setLocationByPlatform(true);

想问的人想知道为什么吗?


问题答案:

在我看来,屏幕中间的一个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();
            }
        });
    }
}


 类似资料:
  • 问题内容: 我有一个Serializable对象,该对象应该将java.awt.Image作为其成员。我应该如何进行序列化? (抱歉,此版本是根据不太清晰的第一版编辑的。) 问题答案: ImageIcon实现了Serializable,可用于包装Image类 http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/ImageIcon.html

  • 本文向大家介绍如何最好地在Google地图上显示HTML5地理位置的准确性?,包括了如何最好地在Google地图上显示HTML5地理位置的准确性?的使用技巧和注意事项,需要的朋友参考一下 要在Google Map上显示HTML5地理位置的准确性,请使用以下代码-

  • 问题内容: 我正在编写一个脚本,其中将业务量以纬度和经度加载到mySQL数据库中。然后,我向该脚本提供一个(最终用户的)经度纬度,并且该脚本必须计算从提供的经度/经度到它从数据库中获得的条目的EACH的距离,并按从最远到最远的顺序对其进行排序。 实际上,我实际上只需要大约10或20个“最近”的结果,但是除了从数据库中获取所有结果并对每个结果运行函数然后进行数组排序之外,我什么也想不做。 这是我已经

  • 问题内容: 我正在申请作为Java开发人员的工作。直到2001年,我才用Java编写了一些业余应用程序,此后,我主要使用c ++和其他语言工作。同时,感觉Java增长了很多,我不知道有各种各样的缩写(EJB,spring等)。 在哪里可以找到Java最近(五年)开发的简洁明了的解释?需要了解哪些关键要素? 问题答案: 2001年?哇,时代变了。那是什么?Java 1.3? 首先,语言特点: 泛型:

  • 问题内容: 在另一个线程中,我表示我喜欢通过执行以下操作来居中GUI: 但是安德鲁·汤普森(Andrew Thompson)有不同的看法,而是打电话给 想问的人想知道为什么吗? 问题答案: 在我看来,屏幕中间的GUI看起来是这样的。我一直在等待它们消失,真正的 GUI出现! 从Java 1.5开始,我们可以使用。哪一个.. 设置此窗口是否应在下一次使该窗口可见时显示在本机窗口系统的默认位置还是当前

  • 本文向大家介绍如何使用HTML5地理位置定位功能,包括了如何使用HTML5地理位置定位功能的使用技巧和注意事项,需要的朋友参考一下 HTML5提供了地理位置定位功能(Geolocation API),能确定用户位置,我们可以借助HTML5的该特性开发基于地理位置信息的应用。本文结合实例给大家分享如何使用HTML5,借助百度、谷歌地图接口来获取用户准确的地理位置信息。 定位功能(Geolocatio