Daha önce
açıklamaya çalıştığım File sınıfı ile, işletim sistemi üzerindeki herhangi bir dosya ya da klasör ile alakalı pekçok bilgiye erişebiliyoruz.Bu yazıda, File sınıfının bu özelliklerini kullanarak, Swing bileşenleri ile grafiksel bir uygulama geliştirmeye çalışacağım.Geliştireceğimiz uygulama ana hatları ile oldukça basit aslında. Swing’in sunmuş olduğu JFileChooser ile, işletim sisteminde istediğimiz bir dosyayı seçip o dosya (file) hakkında pekçok bilgiyi, JList bileşeni yardımı ile programımızda görüntüleyeceğiz.Uygulamayı geliştirmeye geçmeden önce, bu örnek kod hakkında söylemek istediğim birkaç şey var. Uygulama her ne kadar, JFileChooser ile seçtiğimiz bir dosyayı File türünde bir değişkene atıyorsa da, uygulama da kullanılan JButton (buton/düğmeler) bileşenleri ile, Swing üzerinde olay (event) yönetiminin nasıl çalıştığı hakkında da başlangıç seviyesinde bilgi sahibi olunabilir.Uygulama kodu aşağıdaki gibidir. Gerekli açıklamaları kod üzerinde göstermeye çalıştım.Kod:
Programın ekran görüntüsü de aşağıdaki gibi.
Görüldüğü gibi geliştirdiğimiz uygulama çok basit bir Swing örneği olmasına karşın, içerisinde pekçok önemli özelliği barındırıyor. Bu örnek ile, JFileChooser, JButton, JList gibi Swing bileşenleri ile oldukça basit ama etkili olay yönetimli bir swing programının nasıl geliştirildiğini kodları inceleyerek öğrenebilirsiniz.Umarım bazı arkadaşlar için fikir verici bir uygulama örneği olmuştur. Başka yazılar da görüşmek üzere…
Linkleri sadece kayıtlı üyeler görebilir. Linkleri görebilmek için Üye Girişi yapın veya ücretsiz olarak Kayıt Olun
package org.javablog; import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.text.SimpleDateFormat; import javax.swing.DefaultListModel; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JList; import javax.swing.JPanel; public class MySwing extends JFrame { //Program için gerekli bileşenleri uygulamaya ekliyoruz private JFileChooser fileChooser; private JButton okButton; private JButton fileChooserButton; private JList list; private DefaultListModel listModel; private File file; MySwing() { file = null; initComponents(); setTitle("Dosya Bilgileri"); setSize(600, 250); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } private void initComponents() { fileChooser = new JFileChooser(); //Seçilebilecek elementin sadece dosya (file) olmasını garantiliyoruz fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); //Tamam butonunu oluşturuyoruz okButton = new JButton("Tamam"); //Dosya Seç butonunu oluşturuyoruz fileChooserButton = new JButton("Dosya Seç"); //Verilerin gösterileceği JList örneğini oluştur listModel = new DefaultListModel(); list = new JList(listModel); JPanel panel = new JPanel(); //Bileşenleri oluşturduğumuz panele ekliyoruz panel.add(fileChooserButton); panel.add(okButton); panel.add(list); add(panel); //Dosya Seç butonununa tıklandığında yapılacak eylemi tanımlıyoruz //butonun addActionListener methodu ile olay yönetim nesnesini //anonymous inner class olarak belirtiyoruz fileChooserButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //artık dosya seçme pencerimizi açtırabiliriz fileChooser.showOpenDialog((Component) e.getSource()); //ve dosya seçim penceresinden işaretlenen dosyayı file fieldımıza atıyoruz file = fileChooser.getSelectedFile(); } }); //yine aynı şekilde Tamam butonunna tıkladığımızda yapılacak olayları tanımlıyoruz okButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //Tarih, lastModified() methodundan gelen long türünde //bunu anlamlı hale getiriyoruz gün ay yıl SimpleDateFormat dateFormat = new SimpleDateFormat("dd MMMM yyyy"); String date = dateFormat.format(file.lastModified()); //artık listemiz içerisine file fieldındaki nesneyi kullanarak verileri yazabiliriz. listModel.addElement("Dosya Adı : " + file.getName()); listModel.addElement("Son Düzenlenme : " + date); listModel.addElement("Dosya Absolute Path : " + file.getAbsolutePath()); listModel.addElement("Dosya Uzunluğu : " + file.length()); listModel.addElement("Dosya Yolu : " + file.getPath()); listModel.addElement("Dosya Parent : " + file.getParent()); } }); } public static void main(String[] args) { new MySwing(); } } |
Programın ekran görüntüsü de aşağıdaki gibi.