在我看来,屏幕中间的一个GUI看起来是这样的。我一直在等待它们消失,真正的 GUI出现!
从Java 1.5开始,我们可以使用Window.setLocationByPlatform(boolean)
。哪一个..
设置此窗口是否应在下一次使该窗口可见时显示在本机窗口系统的默认位置还是当前位置(由getLocation返回)。此行为类似于未通过编程设置其位置而显示的本机窗口。如果未明确设置窗口的位置,则大多数窗口系统会级联窗口。一旦窗口显示在屏幕上,便确定了实际位置。
看一下这个示例的效果,该示例将3个GUI设置为操作系统选择的默认位置-在Windows 7,Linux和Gnome和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();
}
});
}
}