Harun Reşit Zafer

bâki kalan bu kubbede bir hoş sadâ imiş

Swing ile Basit bir Resim Galerisi

Java’da swing ile basit bir resim galerisi gerçekleştireceğiz. Bu uygulama ile pencerelerde resimlerle çalışmaya giriş yapmış olacağız. Önceki bir makale olan örnek veritabanı uygulamasında kişileri bir tabloda tutuyor ve klasik ekle/sil/güncelle işlemleri yapıyorduk. Bir yorumcu arkadaş uygulamada kişilerin resimlerini de göstermek istediğini belirtince bu makaleyi hazırlamaya karar verdim.

Bu uygulamada resimleri veritabanında nasıl tutacağınızı anlatmıyorum. Yalnızca resimleri pencerede nasıl göstereceğiniz ile ilgili bir uygulama bu. Veritabanı ile çalışacak arkadaşlara tabloda resimlerin kendilerini değil dosya yollarını tutmalarını öneriyorum.

İşe önce Netbeans’i açıp aşağıdaki gibi bir pencere oluşturmakla başlayalım:

Gördüğünü gibi sol üst köşeye bir JLabel aşağıya da 5 adet JButton yerleştirmeniz yeterli. Bunu nasıl yapacağınızı bilmiyorsanız öncelikle bu makaleyi çalışmanız gerekecek. İlk butonu çizip sonrakileri kopyala yapıştır yaparsanız tüm butonlarınız aynı boyutta olur. Bu arada isimlerini değiştirmeyi ve güzel isimler vermeyi unutmayın.

Şimdi geçelim uygulamanın kodlarına:

Resimlerin dosya yollarını static String olarak en başta tanımlamak bizi kodun geri kalanında zahmetten kurtaracaktır:

private static String RESIM_1 = "images/senol.jpg";
private static String RESIM_2 = "images/ibrahim.jpg";
private static String RESIM_3 = "images/aslan.jpg";
private static String RESIM_4 = "images/powerpoint.jpg";
private static String RESIM_5 = "images/tekir.jpg";

Aşağıdaki fonksiyon her butonun üzerinde ilgili resmin görünmesini sağlıyor

private void setButtonIcons(){
   ImageIcon icon1 = new ImageIcon(RESIM_1);
   resim1Button.setIcon(icon1);
   ImageIcon icon2 = new ImageIcon(RESIM_2);
   resim2Button.setIcon(icon2);
   ImageIcon icon3 = new ImageIcon(RESIM_3);
   resim3Button.setIcon(icon3);
   ImageIcon icon4 = new ImageIcon(RESIM_4);
   resim4Button.setIcon(icon4);
   ImageIcon icon5 = new ImageIcon(RESIM_5);
   resim5Button.setIcon(icon5);
}

Butonların ismini yaptıkları işle alakalı olarak değiştirmiş olduğuma dikkat edin.

Aşağıdaki metod ise JLabel nesnemizde, dosya yolu verilen resmin görünmesini sağlıyor.

private void setImage(String path){
   ImageIcon icon = new ImageIcon(path);
   Image image = icon.getImage().getScaledInstance(300, 300, Image.SCALE_SMOOTH);
   icon.setImage(image);
   resimLabel.setIcon(icon);
   resimLabel.setText("");
}

Bu metodu her butonun action metodunun içerisinden aşağıdaki gibi çağıracağız:

private void resim1ButtonActionPerformed(java.awt.event.ActionEvent evt) {
   setImage(RESIM_1);
}

Son olarak pencere açılırken, yani uygulama başlarken çalışmasını istediğimiz kodları Pencere isimli sınıfımızın inşaacı (constructor) metoduna ekliyoruz:

public Pencere() {
   initComponents();
   setImage(RESIM_1);  // açılışta ilk resim görünecek
   setButtonIcons();   // Düğmelerin üzerindeki resimleri ayarlıyor
}

Kodların tamamını Netbeans projesi olarak buradan indirebilirsiniz:

Herkese kolay gelsin

Not: Karikatürler için sanatçılara teşekkürler.

//Border border = BorderFactory.createLineBorder(Color.BLACK, 1);
//resimLabel.setBorder(border);
Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPrint this pageEmail this to someone

6 Yorum

  1. Hocam çok teşekkür ederim. Benim sorumun cevabını tam olarak içermese de resimlerle çalışma ve görüntüleme ile ilgili güzel bir anlatım olmuş. Bende o yorumu yaptıktan sonra swing ile ilgili birkaç ingilizce kaynak buldum onları inceliyorum. bişeyler yapabilirsem sizlerle paylaşırım. Çok teşekkür ederim zaman ayırıp bu örnek uygulamayı hazırladığınız için.

    • admin

      20 Kasım 2010 at 12:48

      Umarım herkese faydalı olur. Bayram tatilinin güzellikleri işte :) normalde onbeş günde bir yazıya zor vakit ayırıyorum. Kolay Gelsin

  2. Hocam ya bu veritabanına dosya yolunu nasıl yazdıracaz. Hani resim dosyasını göstersek, resmi hem ilgili klasöre upload etse hem de yolunu veritabanına da kaydetse. Hadi yap bi babalık 😉 :)

  3. Hocam ellerinize sağlık, doğru dürüst türkçe kaynak bulabildim sonunda. örnekler de çok güzel

  4. Hocam ellerinize sağlık, yazılarınıza sık sık başvuruyorum. Her biri referans kıvamında.

    Hocam veritabanına resim ekleyip onlar üzerinden işlem yapmayı da anlatırsanız çok makbule geçecek. Nette yeterli kaynak yok.

    • admin

      15 Ağustos 2012 at 08:45

      Veritabanına resimleri değil de resimlerin dosya yolunu kaydetmek daha mantıklı geliyor bana. Doğrudan resim kaydetmek de mümkün bildiğim kadarıyla ama hiç denemedim.

Bir Cevap Yazın

E-posta adresiniz yayınlanmayacak

*

© 2016 Harun Reşit Zafer

Temayı tasarlayanAnders NorenYukarı ↑