Geniş Ekran Modu Otomatik Ekran Boyutu Font Boyutunu Azalt Font Boyutunu Azalt Font Boyutunu Normal Yap Yazdır

Java Applet JFileChooser

Java swing arayüzlerinden - dosya sistemine erişimi sağlayan JFileChooser sınıfının detayları

JFileChooser jfc = new JFileChooser();
jfc.showOpenDialog(null);

Bu kod parçacığı kullanıcının ön tanımlı dizinini gösteren bir dosya diyaloğu açar. Ön tanımlı dizininizi linux ortamında komut satırına “env” komutunu vererek ulaşabilirsiniz. Bu komutu çalıştırdığınızda karşınıza gelen listedeki HOME ortam değişkeni kullanıcının ön tanımlı dizinidir. Örnek görüntümüz şu şekilde olacaktır :

Java Applet JFileChooser

Peki biz dosya diyalogumuzu öntanımlı klasörde değil de başka klasörde açmak istersek ne yapmalıyız? Bunun için JFileChooser sınıfının parametre olarak dosya yolu yada dosya alan diğer yapılandırıcı metodunu kullanmalıyız. Örneğin ben dosya seçme diyaloğumu “/home/orhan/Downloads” klasöründe açmak istersem şu kod parçasını kullanmam gerekir :

JFileChooser jfc = new JFileChooser("/home/orhan/Downloads");
jfc.showOpenDialog(null);

Bundan sonra ihtiyacımız olan kullanıcının hangi seçeneği seçtiğini öğrenmek. Kullanıcı herhangi bir dosyayı seçebilir veya işlemi iptal edebilir. Diyalogdan kullanıcı çıktısını şu şekilde alıyoruz :

JFileChooser jfc = new JFileChooser("/home/orhan/Downloads");
int kullaniciSecimi = jfc.showOpenDialog(null);

kullaniciSecimi değişkeninin alabileceği değerler de JFileChooser sınıfında tanımlanmıştır. Bu değerler :

JFileChooser.APPROVE_OPTION    //seçim onaylandı
JFileChooser.CANCEL_OPTION       //seçim iptal edildi
JFileChooser.ERROR_OPTION        //işlem sırasında hata oluştu

  Şimdi kullanıcının seçmiş olduğu dosya ismini JFileChooser sınıfından almayı öğrenelim.

if (kullaniciSecimi == JFileChooser.APPROVE_OPTION) {
  System.out.println(jfc.getSelectedFile());
}

  Kullanıcı tarafından seçilen dosya referansına ulaşmak için getSelectedFile() metodunu kullanıyoruz. Eğer kullanıcıya birden fazla dosya seçme imkanı tanımak istiyorsak sırasıyla şu işlemleri yapmalıyız.

jfc.setMultiSelectionEnabled(true);
int kullaniciSecimi = jfc.showOpenDialog(null);
if (kullaniciSecimi == JFileChooser.APPROVE_OPTION) {
     for(File f : jfc.getSelectedFiles()) {
         System.out.println(f);
     }
}

  Son olarak seçimimiza filtre eklemeyi öğrenelim. Örneğin sadece jpg uzantılı dosyaların seçilebilmesini istiyorsak :

FileNameExtensionFilter filter = new FileNameExtensionFilter("*.jpg dosyaları seçebilirsiniz", new String[]{"jpg", "jpeg"});
jfc.setFileFilter(filter);

Java Applet JFileChooser

Şimdide yukardaki gibi bir ön izleme penceresine sahip bir JFileChooser nesnesi olutşuralım:

 

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.beans.*;
import java.io.*;

public class Test extends JFrame {
  JFileChooser  chooser = new JFileChooser();
  ImagePreviewer previewer = new ImagePreviewer();
  PreviewPanel  previewPanel = new PreviewPanel();

  class PreviewPanel extends JPanel {
    public PreviewPanel() {
      JLabel label = new JLabel("Resim Önizleme", SwingConstants.CENTER);
      setPreferredSize(new Dimension(150,0));
      setBorder(BorderFactory.createEtchedBorder());

      setLayout(new BorderLayout());

      label.setBorder(BorderFactory.createEtchedBorder());
      add(label, BorderLayout.NORTH);
      add(previewer, BorderLayout.CENTER);
    }
  }
  public Test() {
    super("Image Previewer Accessory");
   
    Container contentPane = getContentPane();
    JButton  button = new JButton("Select A File");

    contentPane.setLayout(new FlowLayout());
    contentPane.add(button);    

    chooser.setAccessory(previewPanel);


    button.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        int state = chooser.showOpenDialog(null);
        File file = chooser.getSelectedFile();
        String s = "CANCELED";

        if(file != null &&
           state == JFileChooser.APPROVE_OPTION) {
          s = "File Selected: " + file.getPath();
        }
        JOptionPane.showMessageDialog(null, s);
      }
    });

    chooser.addPropertyChangeListener(
                  new PropertyChangeListener() {
      public void propertyChange(PropertyChangeEvent e) {
        if(e.getPropertyName().equals(
          JFileChooser.SELECTED_FILE_CHANGED_PROPERTY)) {
          File f = (File)e.getNewValue();
          String s = f.getPath(), suffix = null;
          int i = s.lastIndexOf('.');

          if(i > 0 && i < s.length() - 1)
            suffix = s.substring(i+1).toLowerCase();

          if(suffix.equals("gif") ||
            suffix.equals("jpg"))
            previewer.configure(f);
        }
      }
    });
  }
  public static void main(String a[]) {
    JFrame f = new Test();
    f.setBounds(300, 300, 300, 75);
    f.setVisible(true);

    f.setDefaultCloseOperation(
                WindowConstants.DISPOSE_ON_CLOSE);

    f.addWindowListener(new WindowAdapter() {
      public void windowClosed(WindowEvent e) {
        System.exit(0);
      }
    });
  }
}
class ImagePreviewer extends JLabel {
  public void configure(File f) {
    Dimension size = getSize();
    Insets insets = getInsets();
    ImageIcon icon = new ImageIcon(f.getPath());

    setIcon(new ImageIcon(icon.getImage().getScaledInstance(
            size.width - insets.left - insets.right,
            size.height - insets.top - insets.bottom,
            Image.SCALE_SMOOTH)));
  }
}

  Yukardaki kodlarda PreviewPanel nesnesi ile JFileChooserin sağ tarafında bir panel nesnesi oluşturuyoruz ve bu nesneyi chooser.setAccessory(previewPanel); diyerek JFileChoosere eklemiş oluyoruz. ImagePreviewer adında bir JLabel nesnesi oluşturuo içerisine tanımladığımız ImageIconu biraz önce oluşturduğumuz JPanel (previewPanel) nesnesi üzerine ekliyoruz.

chooser.addPropertyChangeListener tetikleyicisi ile de herhangi bir seçim durumunda seçili nesneye ait resmin ön izlemesinin JPanel içerisindeki JLabelde yer almasını sağlıyoruz.

 

 

Kaynak

Bu içerikle ilgili henüz herhangi bir yorum yapılmamıştır. Bu içerikle ilgili Yorumunuzu eklemek için burayı tıklayınız.

Java Applet Temelleri

Java ve Javascript
Javadan javascripte ve Javascriptten java ya aktarılan değerler
Kullanıcının Bilgisayarında İşlem Yapmaya Yetkili ...
Applet kodlarınız kendi makinenizde sorunsuzca çalışıyor ancak webe attığınızda çalışmıyorsa sebebi ...
Java Aplleti imzalamak (Signed applet)
Security manager adlı sistemi sayesinde koda bazı sınırlamalar koyarak kullanıcıya zarar vermesi önl...
Java ile HTML form POST
Örnek bir kod
Java Applet ve Dosya POST işlemi
Birden fazla dosyayı sunucudaki bir dosyaya POST edebilen java uygulaması
Java Applete Resim Eklemek
Birden fazla resmi yüklemek
Japplet Projesinin Oluşturulması Japplet Standart ...
Japplet projesinin oluşturulması japplet standart metotları ve metotların görevleri
Japplet Projesinin Oluşturulması
Japplet standart metotları ve metotların görevleri
Japplet Projesinin Oluşturulması Japplet Standart ...
Japplet standart metotları ve metotların görevleri
İlk Java Jappletinin Çalıştırılması
Applet viewerın kullanılması, html applet yapısı, html olarak jappletin Çalışması için gerekenler
İlk Java Jappletinin Çalıştırılması
Applet viewerın kullanılması, html applet yapısı, html olarak jappletin Çalışması için gerekenler
İlk Java Jappletinin Çalıştırılması
Applet viewerın kullanılması, html applet yapısı, html olarak jappletin Çalışması için gerekenler
İlk Java Jappletinin Çalıştırılması
Applet viewerın kullanılması, html applet yapısı, html olarak jappletin Çalışması için gerekenler
Java Applet Nedir?
Java applet nedir?apllet Örnekleri,applet ve japplet farkı
Java Applet Nedir?
Applet örnekleri,applet ve japplet farkı
Javada Timer Kullanımı
Belirli saniye aralıklarla çalışan uygulama
Java Applet ile Veri Tabanı Bağlantısı
Uygulamanın jar dosyasına tıklarsanız ekranın bir görüntüsü önünüze gelecektir.
Java da GridLayut Kullanımı
Izgara mantığıyla çalışan Java Layoutu
Java Applet Layout Kullanımları
setLayout(null); setLayout(new FlowLayout()); setLayout(new BorderLayout()); new CardLayout(); Yerle...
Java Applet JTextArea Nesnesi ve Kullanımı
Basit bir text editör yapımı

Ödev Gönder | İncelenmeyi Bekleyen Ödevler | Uygulama Resimleri | Uygulama Resmi Gönder | İnternet Üzerinden Sınav | Test Sorusu Gönder | Sınıf Karneleri | Anketler | Linkler
www.dijitalders.com

bilgidijitalders.com
Bu sayfalar en iyi 1024 x 768 ekran çözünürlüğünde görüntülenir.
Site içerikleri, site kullanıcıları tarafından yollanan içeriklerdir. Her hangi bir içeriğin lisanslı yahut şahsınıza ait olduğunu tarafımıza iletirseniz gerekli düzenlemeyi yapacağız. Kullanılan içerikler, siteyi kullanan öğrenciler ve araştırmacılar için kolaylık sağlamak amacıyla oluşturulmuştur.
Sayfada HATA! Olduğunu Düşünüyorsanız | Sık Kullanılanlara Ekle | www.dijitalders.com'u Ana Sayfam Yap | Web Tasarımcıya e-Posta
Bu site 906,167 kişi tarafından ziyaret edilmiştir.