Menempatkan JFrame di Tengah Layar

Pendahuluan

Pada latihan programming Java (Swing) kali ini kita akan mempelajari bagaimana caranya menempatkan JFrame di tengah layar.

Gambar 1 – Posisi JFrame di tengah layar

Gambar 1 – Posisi JFrame di tengah layar

Bagaimana Caranya?

Untuk menempatkan JFrame ditengah layar terdapat dua cara untuk melakukannya yaitu dengan menggunakan method setLocationRelativeTo() yang merupakan method yang diwariskan dari class Window. Method tersebut didesain untuk membolehkan kita untuk menempatkan posisi frame relatif terhadap satu komponen lain yang telah ditampilkan. Tetapi jika kita memasukkan null sebagai parameter maka, method tersebut akan menempatkan frame ditengah-tengah layar.

Gambar 2 – Dokumentasi dari method setLocationRelativeTo()

Gambar 2 – Dokumentasi dari method setLocationRelativeTo()

Sekarang kita coba program di bawah ini agar lebih jelas bagaimana method tersebut digunakan.

CenteredFrame1.java
import javax.swing.*;

public class CenteredFrame1{
public static void main(String args[]){
SwingUtilities.invokeLater(new Runnable(){
public void run(){
JFrame frame = new JFrame();

frame.setTitle("Centered JFrame1");
frame.setSize(250, 250);
// Menempatkan JFrame di tengah layar
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


frame.setVisible(true);
}
});
}
}

Dan kita bisa lihat hasil dari program tersebut adalah sebagai berikut.

Gambar 3 – Menempatkan Jframe ditengah-tengah layar menggunakan method setLocationRelativeTo()

Gambar 3 – Menempatkan Jframe ditengah-tengah layar menggunakan method setLocationRelativeTo()

Selain menggunakan method setLocationRelativeTo() terdapat cara lain yaitu dengan menggunakan class Toolkit. Dengan menggunakan class tersebut kita dapat mengetahui lebar dan tinggi dari layar sehingga kita dapat menghitung posisi untuk frame. Untuk menentukan ukuran dari layar, kita gunakan class tersebut. Class Toolkit memiliki banyak method, tetapi yang kita gunakan hanya dua yaitu:

  • getDefaultToolkit: Merupakan static method yang membuat objek Toolkit. Kita harus menggunakan method ini sebelum kita menggunakan getScreenSize method.

  • getScreenSize: Mengembalikan ukuran dari layar sebagai objek Dimension.

Gambar 4 – Dokumentasi dari class Toolkit

Gambar 4 – Dokumentasi dari class Toolkit

Class Dimension memiliki dua public field yang menunjukkan ukuran dari layar, yaitu height dan width, dimana keduanya merupakan field yang bertipe int. Jika kita bermaksud untuk menempatkan frame sehingga sudut bottom-left-nya tepat di tengah layar. Kita gunakan potongan kode berikut:


// Memperoleh ukuran layar
Dimension screenSize =
Toolkit.getDefaultToolkit().getScreenSize();
// Menghitung posisi dimana frame akan diletakkan pd layar
frame.setLocation((screenSize.width - frame.getWidth()) / 2,
(screenSize.height - frame.getHeight()) / 2);

Potongan kode tersebut membuat objek Toolkit dan menggunakannya untuk mendapatkan
ukuran layar. Sekarang kita coba program di bawah ini agar lebih jelas bagaimana kode tersebut digunakan.

CenteredFrame2.java

import java.awt.*;
import javax.swing.*;


public class CenteredFrame2{
public static void main(String args[]){
SwingUtilities.invokeLater(new Runnable(){
public void run(){
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("Centered JFrame2");
frame.setSize(250, 250);


// Memperoleh ukuran layar
Dimension screenSize =
Toolkit.getDefaultToolkit().getScreenSize();
// Menghitung posisi dimana frame akan diletakkan pd layar
frame.setLocation((screenSize.width - frame.getWidth()) / 2,
(screenSize.height - frame.getHeight()) / 2);


//frame.pack();
frame.setVisible(true);
}
});
}
}

Referensi

  1. Doug Lowe and Barry Burd, “Java All-In-One Desk Reference For Dummies, 2nd Edition”, John Wiley & Sons, 2007.
  2. JDK 6 Documentation.

Download

  1. Source Code: ghaNOZ 2480 – Menempatkan JFrame di Tengah Layar (Source Code)

Related Information

  1. How do I make a centered JFrame?“, http://kodejava.org/examples/45.html

Revision History
ghaNOZ 2480

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s