Menurut saya, GUI di tengah layar terlihat begitu .. "splash-screen'ish". Saya terus menunggu mereka menghilang dan GUI yang sebenarnya muncul!
Sejak Java 1.5 kami telah memiliki akses Window.setLocationByPlatform(boolean)
. yang..
Setel apakah Window ini akan muncul di lokasi default untuk sistem windowing asli atau di lokasi saat ini (dikembalikan oleh getLocation) saat Window berikutnya terlihat. Perilaku ini menyerupai jendela asli yang ditampilkan tanpa secara terprogram mengatur lokasinya. Sebagian besar sistem jendela membuat jendela jika lokasinya tidak diatur secara eksplisit. Lokasi sebenarnya ditentukan setelah jendela ditampilkan di layar.
Lihat efek dari contoh ini yang menempatkan 3 GUI ke posisi default yang dipilih oleh OS - pada Windows 7, Linux dengan Gnome & Mac OS X.
(3 lot) 3 GUI ditumpuk dengan rapi. Ini mewakili 'jalan paling tidak mengejutkan' bagi pengguna akhir, karena itu adalah bagaimana OS dapat memposisikan 3 contoh editor teks biasa (atau apa pun, dalam hal ini). Terima kasih saya kepada trashgod untuk Linux & Mac. gambar-gambar.
Berikut adalah kode sederhana yang digunakan:
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();
}
});
}
}