hakantopuzoglu
- 25 May 2018
- 2,233 Mesaj
- TIM Görevleri
- 1
Aktiflik
Seviye
Deneyim
Java Swing ile Masaüstü Uygulama Geliştirme Rehberi
Java’da masaüstü uygulama geliştirmek isteyenler için en klasik ve güçlü kütüphanelerden biri olan **Java Swing**’i sıfırdan, pratik ve anlaşılır bir şekilde anlatacağım.
Bu rehberde basit bir pencereden başlayarak, buton, metin kutusu, layout yönetimi, event handling ve daha gelişmiş bileşenlere kadar her şeyi adım adım göreceğiz. Özellikle öğrenci ve yeni başlayan arkadaşlar için ideal bir içerik olacak.
1. Gereksinimler
2. İlk Swing Uygulaması (Merhaba Dünya)
---
3. Temel Bileşenler
**Örnek: Basit Form**
4. Layout Yönetimi (Önemli!)
- FlowLayout (varsayılan)
- BorderLayout
- GridLayout
- GridBagLayout (en esnek)
- BoxLayout
5. Event Handling (Olay Yönetimi)
ActionListener, MouseListener, KeyListener gibi listener’lar ile kullanıcı etkileşimlerini yakalayabilirsiniz.
6. En İyi Uygulamalar
Herkese Merhaba,Java’da masaüstü uygulama geliştirmek isteyenler için en klasik ve güçlü kütüphanelerden biri olan **Java Swing**’i sıfırdan, pratik ve anlaşılır bir şekilde anlatacağım.
Bu rehberde basit bir pencereden başlayarak, buton, metin kutusu, layout yönetimi, event handling ve daha gelişmiş bileşenlere kadar her şeyi adım adım göreceğiz. Özellikle öğrenci ve yeni başlayan arkadaşlar için ideal bir içerik olacak.
1. Gereksinimler
- Java JDK 8 veya üstü
- Herhangi bir IDE (IntelliJ IDEA, Eclipse veya NetBeans önerilir)
- Swing zaten JDK ile birlikte geliyor, ekstra kütüphane gerekmez
2. İlk Swing Uygulaması (Merhaba Dünya)
Kod:
import javax.swing.*;
public class IlkSwing {
public static void main(String[] args) {
JFrame frame = new JFrame("İlk Swing Uygulamam");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel label = new JLabel("Merhaba TurkHacks!", SwingConstants.CENTER);
frame.add(label);
frame.setVisible(true);
}
}
---
3. Temel Bileşenler
- JFrame → Ana pencere
- JPanel → Bileşenleri organize etmek için
- JButton → Buton
- JLabel → Etiket
- JTextField → Tek satır metin girişi
- JTextArea → Çok satırlı metin alanı
- JCheckBox, JRadioButton, JComboBox vb.
**Örnek: Basit Form**
Kod:
import javax.swing.*;
import java.awt.*;
public class BasitForm extends JFrame {
public BasitForm() {
setTitle("Kullanıcı Kayıt Formu");
setSize(500, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
add(new JLabel("Ad Soyad:"));
JTextField adField = new JTextField(20);
add(adField);
JButton kaydetBtn = new JButton("Kaydet");
add(kaydetBtn);
kaydetBtn.addActionListener(e -> {
JOptionPane.showMessageDialog(this, "Kayıt Başarılı: " + adField.getText());
});
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new BasitForm().setVisible(true));
}
}
4. Layout Yönetimi (Önemli!)
- FlowLayout (varsayılan)
- BorderLayout
- GridLayout
- GridBagLayout (en esnek)
- BoxLayout
5. Event Handling (Olay Yönetimi)
ActionListener, MouseListener, KeyListener gibi listener’lar ile kullanıcı etkileşimlerini yakalayabilirsiniz.
6. En İyi Uygulamalar
- Tüm GUI işlemlerini Event Dispatch Thread’de çalıştırın → `SwingUtilities.invokeLater()`
- Try-with-resources ve uygun exception handling kullanın
- MVC (Model-View-Controller) yapısını tercih edin
- Görünüm için Look and Feel değiştirebilirsiniz (Nimbus, FlatLaf vb.)
LOJİSTİK TİM SUNDU
Siber Güvenlik ve Yazılım Paylaşımları için TurkHacks’e Katılın!

