在我看来,屏幕中间的GUI看起来如此。“初始屏幕”。我一直在等待它们消失,真正的GUI出现!
从Java 1.5开始,我们可以访问Window.setLocationByPlatform(boolean)
。哪。。
设置下次使窗口可见时,此窗口是应出现在本机窗口系统的默认位置,还是应显示在当前位置(由 getLocation 返回)。此行为类似于在不以编程方式设置其位置的情况下显示的本机窗口。大多数窗口系统在窗口位置未明确设置时会层叠窗口。一旦窗口显示在屏幕上,就会确定实际位置。
看看这个例子的效果,它将3个GUI放在操作系统选择的默认位置 - 在Windows 7,Linux与Gnome和Mac OS X上。
(3 批)3 个 GUI 整齐堆叠。这代表了最终用户的“最不令人惊讶的路径”,因为这是操作系统可能放置默认纯文本编辑器(或其他任何内容)的3个实例的方式。我感谢垃圾神的Linux和Mac图像。
下面是使用的简单代码:
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();
}
});
}
}