Java, sadece konsol tabanlı değil, aynı zamanda masaüstü uygulamalar geliştirmek için de güçlü araçlar sunar. Java’da grafiksel kullanıcı arayüzleri oluşturmak için en çok kullanılan kütüphane Swing‘dir. Bu yazıda Java Swing kullanarak GUI (Graphical User Interface) nasıl oluşturulur, temel bileşenler nelerdir, adım adım açıklıyoruz.
Java GUI Nedir?
GUI, kullanıcının yazılımla butonlar, metin kutuları, etiketler, menüler gibi görsel elemanlarla etkileşim kurmasını sağlar. Java’da GUI tasarımı için genellikle Swing ve daha gelişmiş olarak JavaFX kullanılır.
🧰 Java Swing Temelleri
Swing, javax.swing
paketinde yer alır ve Java’nın platform bağımsız grafiksel arayüz bileşenlerini içerir.
Temel Swing Bileşenleri:
Bileşen | Açıklama |
---|---|
JFrame | Pencere oluşturur. |
JPanel | Alt bileşenleri düzenler. |
JButton | Buton oluşturur. |
JLabel | Yazı/etiket gösterir. |
JTextField | Tek satırlı metin kutusu. |
JTextArea | Çok satırlı metin kutusu. |
JCheckBox | Onay kutusu. |
JRadioButton | Seçenek butonları. |
JComboBox | Açılır liste kutusu. |
🛠️ İlk Basit GUI Uygulaması
import javax.swing.*;
public class BasitGUI {
public static void main(String[] args) {
JFrame pencere = new JFrame("Merhaba Swing");
pencere.setSize(400, 200);
pencere.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel etiket = new JLabel("Hoş geldiniz!", SwingConstants.CENTER);
pencere.add(etiket);
pencere.setVisible(true);
}
}
Açıklama:
JFrame
pencereyi oluşturur.JLabel
ile ortalanmış bir yazı eklenmiştir.setVisible(true)
pencereyi gösterir.
🎛️ Etkileşimli GUI: Buton ve Metin Kutusu
import javax.swing.*;
import java.awt.event.*;
public class GirdiGUI {
public static void main(String[] args) {
JFrame frame = new JFrame("Kullanıcı Girişi");
frame.setSize(350, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);
JLabel label = new JLabel("Adınız:");
label.setBounds(20, 20, 80, 25);
frame.add(label);
JTextField textField = new JTextField();
textField.setBounds(100, 20, 200, 25);
frame.add(textField);
JButton button = new JButton("Gönder");
button.setBounds(100, 60, 100, 25);
frame.add(button);
JLabel sonuc = new JLabel("");
sonuc.setBounds(100, 100, 200, 25);
frame.add(sonuc);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String ad = textField.getText();
sonuc.setText("Merhaba, " + ad + "!");
}
});
frame.setVisible(true);
}
}
🧩 Layout (Yerleşim) Yöneticileri
GUI bileşenlerinin pencere içinde düzgün görünmesi için yerleşim yöneticileri kullanılır:
LayoutManager | Açıklama |
---|---|
FlowLayout | Sola, sağa hizalama sağlar. |
BorderLayout | Kuzey, güney, doğu, batı, merkez düzeni. |
GridLayout | Izgara sistemiyle düzenler. |
null layout | Koordinat bazlı manuel konumlandırma. (kullanımı kolay ama önerilmez) |
💡 En İyi Uygulamalar
- GUI tasarımında layout manager kullanmak, pencerenin her boyutta düzgün görünmesini sağlar.
- Swing bileşenleri event-driven yapıdadır, bu yüzden olay dinleyiciler önemlidir.
- Gelişmiş projelerde MVC (Model-View-Controller) mimarisi ile GUI kodları düzenlenmelidir.