Konular

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

Yorumunuzu Ekleyin

Java Applet Nedir?

Applet örnekleri,applet ve japplet farkı

46,523 Okunma 4 Yorum 05/03/2010 09:49:53

Java Applet Nedir?

Java applet nedir?apllet Örnekleri,applet ve japplet farkı

28,992 Okunma 1 Yorum 11/03/2010 08:59:42

Java Applet Layout Kullanımları

setLayout(null); setLayout(new FlowLayout()); setLayout(new BorderLayout()); new CardLayout(); Yerleşim Yöneticileri

27,573 Okunma 1 Yorum 26/01/2010 00:09:26 12/04/2017 00:12:53

Connecting to a MySQL Database

This document demonstrates how to set up a connection to a MySQL database from NetBeans IDE 6.1. Once connected, you can begin working with MySQL in the IDE's Database Explorer by creating new databases and tables, populating tables with data, and running SQL queries on database structures and content. This tutorial is designed for beginners with a basic understanding of database management, who want to apply their knowledge to working with MySQL in NetBeans IDE.

25,730 Okunma Henüz yorum yapılmamış 16/10/2008 18:48:41

Applet Nedir?

Appletlerin temel özellikleri ve kısıtlamalarının aşılması

24,204 Okunma Henüz yorum yapılmamış 03/01/2009 05:42:13

Java Aplleti imzalamak (Signed applet)

Security manager adlı sistemi sayesinde koda bazı sınırlamalar koyarak kullanıcıya zarar vermesi önlenir. Appletlerdeki bu sınırlamayı aşmanın tek yolu signed applet yaratmaktır

23,877 Okunma Henüz yorum yapılmamış 03/07/2010 17:36:51

Kullanıcının Bilgisayarında İşlem Yapmaya Yetkili Güvenilir (Signed) Applet Yazmak

Applet kodlarınız kendi makinenizde sorunsuzca çalışıyor ancak webe attığınızda çalışmıyorsa sebebi appletlerin güvenlik sınırlamalarıdır. Bunu aşmak için appleti imzalamalısınız ve kullanıcılarda appletin bilgisayarlarında yapabileceklerini kabul ettiklerinde ancak applet çalışacaktır. Buna Yerel Dosya Sistemine Erişmeye Yetkili Güvenilir Applet yazmakta denebilir.

23,280 Okunma 1 Yorum 04/07/2010 16:19:54

Java İlk Kodlar (jcreator)

Java classpath tanımlamaları, consolda ilk program yazılması, derlenmesi, çalıştırılması aynı uygulamanın netbeansta yapılışı ve class, java ve jar dosyalarının gösterilmesi

22,343 Okunma Henüz yorum yapılmamış 27/10/2008 14:22:54

Dosya Gezinti Peceresi Açmak

NetBeans IDE'si ile bir dosya açma penceresi açarak dosya sisteminde gezinti yapan ve sonuçta seçilen dosyayı ekrana yazıp, kaç karakterden oluştuğunu veren bir uygulama.

18,587 Okunma Henüz yorum yapılmamış 07/11/2008 10:41:35

Yükleniyor...