Java Swing – İlk Uygulama

Java Swing, Java uygulamaları için grafiksel arayüz (GUI) hazırlamak için geliştirilmiş, devasa büyüklükte bir grafik setidir.

Bu yazıda Java Swing kullanarak ilk grafiksel Java uygulamamızı geliştiricez. Swing uygulamalarını derlemek için ek bir ayar gerekmemektedir. Normal Java uygulamalarını derlediğimiz şekilde Swing uygulamalarını da derleyip çalıştırabiliriz.

//Gerekli swing kütüphanelerini uygulamamıza ekleyelim
import javax.swing.*;
 
class MerhabaSwing
{
	//Programımızın GUI arayüzünü hazırlayan method
	private void guiBuilder()
	{
		//Uygulama penceresini hazırlıyoruz
		JFrame jframe = new JFrame("JavaBlog.Org");
		//Penceremizin boyutunu ayarlayalım
		jframe.setSize(400, 100);
		jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
		//Pencere içinde gösterilecek yazı için Label etiketi ekleyeyelim
		JLabel jlabel = new JLabel("Merhaba Swing, Naber?");
		//Şimdide oluşturduğumuz label etiketini ana penceremize ekleyelim
		jframe.add(jlabel);
 
		//ve penceremizin görünürlüğünü ayarlayalım
		jframe.setVisible(true);
	}
 
	public static void main(String[] args)
	{
		MerhabaSwing merhabaSwing = new MerhabaSwing();
		merhabaSwing.guiBuilder();
	}
}

Programı derleyip çalıştırabilmek için herhangi bir metin editöründe, “MerhabaSwing.java” adında bir dosya oluşturup yukarıdaki kodu bu dosyaya yazın. Dosya adının MerhabaSwing olduğundan emin olun, yoksa programı derleyemezsiniz.

Daha sonra komut satırı ya da terminal programını açıp, “MerhabaSwing.java” dosyasının bulunduğu klasöre gelerek

javac MerhabaSwing.java

ve arkasından

java MerhabaSwing

komutlarını sırasıyla verin. Eğer aşağıdaki gibi bir çıktı alıp, programınızı çalıştırabildiyseniz ilk grafiksel GUI Java programınızı yazıp çalıştırmışsınız demektir.

Swing Olaylar

Bu noktada bahsetmemiz gereken birşey var. Java Swing uygulamaları event-driven (olay güdümlü) programlardır. Olay dediğimiz şey aslında birer nesneden ibaretdir.

Swing ile geliştirdiğiniz her ciddi uygulama olaylar (events) üretir ve bu olaylara tepki verir. Örneğin, Swing ile geliştirdiğiniz bir GUI programında bir button eklediğinizi varsayalım ve bu buttona tıkladığınızda ana penceredeki etiket (Label) içerisindeki yazının değiştiğini varsayalım. İşte bu gibi becerileri, uygulamamıza kazandırabilmemiz için olaylar üretip bu olayları gerekli nesnelere yönlendirip işlememiz gerekmektedir. Olay yönetimine bu yazıda değinmeyeceğim fakat bu noktayı bilmek önemli.

Tüm bu olay mekanizması nedeni ile, olay üreten bir uygulama hazırlarken olayların ana kanaldan (thread) iletilmesi bazı nedenlerden dolayı sakıncalı görülmüştür. Bu yüzden olay iletimini event-dispatching (olay iletim kanalı) kanalı aracılığı ile göndermemiz gerekir. Bu yüzden yukarıdaki kodu aslında şu şekilde yazmak daha doğru.

public static void main(String[] args)
{
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            new MerhabaSwing().guiBuilder();
        }
    });
}

İlk yazdığımız Swing uygulamasında herhangi bir event üretilmediği için, yukarıdaki kodu yazmak gereksiz. Ancak, Swing uygulamaları geliştireceksiniz, mutlaka olaylar üretip bu olayları işleyeceğinizden Swing uygulamalarınızı yukarıdaki şekilde oluşturmaya dikkat etmelisiniz.


İlgili Yazılar:

  1. Java Swing Temelleri
  2. Swing JFileChooser ile Dosya Bilgilerini Almak
  3. Java Foundation Class (JFC) ve Swing

Yorum bırakmak için buraya, Sitenizden trackback vermek için buraya tıklayabilirsiniz.

5 Responses to “Java Swing – İlk Uygulama”

  1. ali diyor ki:

    Merhaba, saatlerdir çözemediğim bir sorun var. komut satrırında javac swingmerhaba.java yazdığımda swing kütüphaneleri ile ilgili kod satırlarında hata veriyor.Sorun sizce ne olabilir.

  2. ali diyor ki:

    Ayrıca anlamadığım birşey daha var sınıf içerisinde o sınıfın metodlarını kullanırken nesnesini yaratmaya gerek var mıdır ?

    public static void main(String[] args)
    {
    MerhabaSwing merhabaSwing = new MerhabaSwing();
    merhabaSwing.guiBuilder();
    }

  3. fatih diyor ki:

    netbeans üzerinde denedim ve artık kendim de yapabiliyorum, teşekkürler

  4. barış diyor ki:

    netbeans üzerinde nasıl yapabiliriz acaba çözemedim bir türlü?

  5. @ali: ortam değişkenleri kısmında path değişkenini ve JAVA_HOME değişkenlerini doğru tanımladınmı?
    path değeri c:\program files\java\jdk1.6.0_25\bin şeklinde olacak.
    JAVA_HOME ise c:\program files\java\jdk1.6.0_25
    ——-
    @ali: bildiğim kadarıyla sadece abstract classlardaki metodları kullanmak için nesne oluşturmaya gerek olmuyordu.
    ——-
    @barış: netbeanste yeni bir proje aç kodları kopyala ve yapıştır. sanırım jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); satırı hata veriyor o kadar, bu satırı silersen de sorunsuzca çalışması lazım netbeans ile.

    Kolay gelsin.

Leave a Reply