Progress Barlı, FTP Dosya Upload Appleti

Benzer belgeler
Applet Form Örnekleri2

İÇİNDEKİLER VII İÇİNDEKİLER

JAVA DA GİRİŞ/ÇIKIŞ İŞLEMLERİ. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 9 1

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31


Java da. ve AWT ve SWING Kütüphaneleri. BBS-515 Nesneye Yönelik Programlama. Ders #8 (9 Aralık 2009)

Burak Kıymaz JAVA FX

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

USOCK Uygulama Bağımsız Mesajlaşma Altyapısı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 11

İnternet Üzerinden Sınav Yapabilen Applet Uygulaması

The Experience of Technical Education Faculty Students in Industry

InputStream Sınıfı. Class InputStream. java.io. java.lang.object java.io.inputstream. Kılgıladığı Arayüzleri: Closeable, AutoCloseable

JComponent in alt sınıfları

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

1 - Button Kontrolu Nasıl Yapılır?

protected Reader() Karekter akımı okumak için Reader nesnesi yaratır. Yaratılan nesne kendi kendisiyle eşzamanlı olur.

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

Start : Bu method init methodundan hemen sonra çalışır ve applet dosyası yürütülmeye başladığında çalışmaya başlar.

Jlist nesnelerin listesini gösteren bir bileşendir. Kullanıcının bir veya birden fazla seçim yapabilmesini sağlar.

Yazılım Kodlama ve İ simlendirme Standartları v1.0

ByteArrayOutputStream

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

Bölüm 22. Java GUI Kütüphanesi SWT GUI Kütüphanesi SWING GUI Kütüphanesi İlk Swing Programı

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Bir c sınıfının doğal sıralaması ile tutarlı olması (be consistent with equals) demek, c sınıfı içindeki her e1 ve e2 nesnesi için

CSSigner, Cybersoft firması tarafından geliştirilmiş açık kaynak kodlu e-imza yazılım kütüphanesidir.

BufferedReader. Kılgıladığı Arayüzler: Closeable, AutoCloseable, Readable. Altsınıfları: LineNumberReader. Bildirimi: public class BufferedReader

BİL132 Bilgisayar Programlama II

GENEL SORULAR VE CEVAPLARI 1.SORU:

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

MOBİL UYGULAMA GELİŞTİRME

Android Kaynakları (Resources)

NETGSMSMS. VER 5.6.0

PAKET TRANSFER SİSTEMİ

public class SalesLineItem // Java { private int quantity; private ProductSpecification description; public Money getsubtotal() {...

Androıd ile Arduıno. Nazir Doğan

İşletim Sistemleri. Dr. Binnur Kurt Omega Eğitim ve Danışmanlık İşletim Sistemleri

CharArrayReader. Kılgıladığı Arayüzler: Bildirimi: Değişkenleri (fields): java.io.reader Sınıfından Kalıtsal Gelen Değişken:

C# ve SQL Server ile Resim Yükleme ve Login İşlemi

Java Applet Üzerinde Form Nesneleri Ve Listener Özelliği

Dağıtık Sistemler CS5001

Karabük Üniversitesi, Mühendislik Fakültesi... WEB TEKNOLOJİLERİ

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

İlgili Konular: Object.equals(java.lang.Object), Object.hashCode(), rehash(), Collection, Map, HashMap, TreeMap, Serialized Form

Alıştırmalar 2 - Dağıtık Sistemler. Alıştırma 2. Prof. Dr. Th. Letschert Çeviri: Turgay Akbaş FB MNI 16. Mai 2013

Test Güdümlü Yazılımın Tasarım Üzerindeki Etkileri KurumsalJava.com

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

Java Programlama Dili

BİL-141 Bilgisayar Programlama I (Java)

BM-209 Nesne Yönelimli Programlama

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

JAVA DA İSTİSNALAR VE DOSYA İŞLEMLERİ. Yrd. Doç.Dr. İlhan AYDIN

Dağıtık Sistemler CS5001

MOBİL UYGULAMA GELİŞTİRME

Interface Comparator. Kılgılayan sınıf: Collator. Bildirimi: public interface Comparator

PAKET TRANSFER SİSTEMİ

Java Applet Üzerine Form Nesnelerini Eklemek

Spring Framework Eğitimi

Soket, bir sunucu programı ve bir veya birden çok istemci programı arasında çift yönlü iletişim kuran bir yazılım uç noktasıdır.

Android Ders Notları

UYGULA İÇİ SATIN ALMA. <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="com.android.vending.

Dağıtık Sistemler CS5001

PAKET TRANSFER SİSTEMİ

Java Programlama Dilinde Veri Tipleri. Yrd. Doç. Dr. Aybars UĞUR

JAVA DEĞİŞKEN VE OPERATÖRLER. M.İLKUÇAR - 1

Java da İstemci Tarafı Uygulamalar

Bölüm 5. Ağaç. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 73

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1

// hataları işaret eden referans

Java Programlama Örnekleri. Doç. Dr. Aybars UĞUR

Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir.

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.

BİL-141 Bilgisayar Programlama I (Java)

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 18: Formatlı Grafik Kullanıcı Arayüzü Oluşturma

MySqlConnection connection; MySqlCommand command; MySqlDataReader reader; MySqlDataAdapter adapter; DataTable table;

Görsel Programlama. Temel Veri Tipleri, Değişkenler, Operatörler, Akış Kontrolü, Sınıflar, Metotlar, Paketler ve JavaDoc

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN

VERİ TABANI İŞLEMLERİ (NESNE TABANLI PROGRAMLAMA TEKNİĞİ İLE)

PORT HABERLEŞME SERİ PORT FARUK BOZAN

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ

Class PriorityQueue. Class PriorityQueue<E> java.lang.object java.util.abstractcollection<e> java.util.abstractqueue<e> java.util.

Erişim konusunda iki taraf vardır:

BİL-141 Bilgisayar Programlama I (Java)

Oyuncu Sınıfı. /// <summary> /// Oyuncumuzun elindeki kart /// </summary> private ArrayList kart = new ArrayList(6);

Durum Yönetimi. Olan sayfalar ekleyelim. BasitSayac.aspx

İstisnalar (Exceptions) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 8 1

Görsel Programlama 1

Android ile SQLLite Veri Tabanı

Đlgili konular: Collection, Set, HashSet, Comparable, Comparator, TreeMap, Collections.synchronizedSortedSet(SortedSet), Serialized Form

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

GENETİK ALGORİTMA GEZGİN SATICI ÖDEVİ

Transkript:

FTP ile dosya etmek kolay ancak bunu bir progressbar (yükleniyor barı) ile yapmak biraz karışık olabilir. Bir kaç java class yapısı kullanarak yazmak daha sonra bu klasları başka yerdede kullanabilmenize imkan verir. Arayüzün bulunduğu class dosyası, aynı zamanda appleti çalıştıran dosyamız : import java.awt.filedialog; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.beans.propertychangeevent; import java.beans.propertychangelistener; import javax.swing.jbutton; import javax.swing.jtextarea; import javax.swing.jtextfield; import javax.swing.japplet; import javax.swing.jlabel; import javax.swing.jprogressbar; 1

public class FTPVideoUpload5 extends JApplet implements ActionListener, PropertyChangeListener { LayoutAraclari LayoutIslemleri = new LayoutAraclari(); DosyaIslemleriAraclari DosyaIslemleri = new DosyaIslemleriAraclari(); String YazilacakDosyaAdi; String GonderilecekDosya; JLabel VideoBasligi = new JLabel("Video Başlığı:"); JTextField VideoBasligiKutusu = new JTextField(100); JLabel VideoAciklamasi = new JLabel("Video Açıklaması:"); JTextArea VideoAciklamaKutusu = new JTextArea(100, 100); //JScrollPane Kaydirma = new JScrollPane(VideoAciklamaKutusu); //scroll.setverticalscrollbarpolicy(scrollpaneconstants.vertical_scrollbar_always); JLabel VideoDosyasi = new JLabel("Video Dosyası:"); JButton VideoDosyasiSec = new JButton("Seçiniz"); public JLabel Mesaj = new JLabel("Video Yüklemek İçin Yukarıdaki Alanları Doldurunuz"); JProgressBar Yukleniyor = new JProgressBar(, 100); public void init() { setlayout(null); LayoutIslemleri.LayoutYerlesticisi(10, 10, 200, 20, VideoBasligi, this); LayoutIslemleri.LayoutYerlesticisi(10, 30, 500, 20, VideoBasligiKutusu, this); LayoutIslemleri.LayoutYerlesticisi(10, 50, 200, 20, VideoAciklamasi, this); LayoutIslemleri.LayoutYerlesticisi(10, 70, 500, 100, VideoAciklamaKutusu, this); LayoutIslemleri.LayoutYerlesticisi(10, 180, 100, 20, VideoDosyasi, this); LayoutIslemleri.LayoutYerlesticisi(110, 180, 110, 20, VideoDosyasiSec, this); LayoutIslemleri.LayoutYerlesticisi(10, 220, 500, 20, Mesaj, this); LayoutIslemleri.LayoutYerlesticisi(10, 250, 500, 20, Yukleniyor, this); Yukleniyor.setStringPainted(true); VideoDosyasiSec.addActionListener(this); public void actionperformed(actionevent ae) { this.mesaj.settext("dosya Seçiliyor"); String IzinVerilenMimeTipleri[] = {"image/jpg", "image/jpeg", "image/png"; DosyaIslemleri.YuklenecekDosyayiSor(IzinVerilenMimeTipleri); Mesaj.setText(DosyaIslemleri.DosyaIslemleriMesaj); FileDialog OkunanDosya = DosyaIslemleri.DosyaPenceresi; this.yazilacakdosyaadi = OkunanDosya.getFile(); this.gonderilecekdosya = OkunanDosya.getDirectory() + OkunanDosya.getFile(); this.mesaj.settext("seçilen Dosya: " + this.gonderilecekdosya); this.videodosyasisec.setenabled(false); this.yukleniyor.setvalue(); FTPBaglantisi FTPBaglanti = new FTPBaglantisi(); if (FTPBaglanti.SunucuyaBaglan(this.YazilacakDosyaAdi)) { this.mesaj.settext("sunucu baglantisi yapıldı, video dosyası gönderiliyor..."); 2

//FTPDosyaUpload FTPDosyaGonderiliyor=new FTPDosyaUpload(this.GonderilecekDosya, FTPBaglanti.FTPBagi); FTPDosyaUpload FTPDosyaGonderiliyor=new FTPDosyaUpload(); FTPDosyaGonderiliyor.GonderilenDosya=this.GonderilecekDosya; FTPDosyaGonderiliyor.FTPBag=FTPBaglanti.FTPBagi; FTPDosyaGonderiliyor.FTPMesaj=this.Mesaj; FTPDosyaGonderiliyor.addPropertyChangeListener(this); FTPDosyaGonderiliyor.execute(); //this.mesaj.settext(ftpdosyagonderiliyor.mesaj); catch (Exception ex) { this.mesaj.settext(ex.getmessage()); catch (Exception ex) { this.mesaj.settext("geçersiz Dosya, lütfen yeniden seçiniz. "); //ex.getmessage() @Override public void propertychange(propertychangeevent evt) { if (evt.getpropertyname().equals("progress")) { int progress = (Integer) evt.getnewvalue(); Yukleniyor.setValue(progress); Yukleniyor.setString(progress + "%"); Applet Nesnelerini Applet Üzerinde Yerleştirmemizi Sağlayan class: import java.awt.component; import javax.swing.japplet; public class LayoutAraclari { public void LayoutYerlesticisi(int x, int y, int En, int Boy, Component Nesne, JApplet EklenecekZemin) { Nesne.setLocation(x, y); Nesne.setSize(En, Boy); EklenecekZemin.add(Nesne); Dosya Penceresi ve Filitreleme İçin Kullandığım class import java.awt.filedialog; import java.awt.frame; import java.net.filenamemap; import java.net.urlconnection; import java.util.arrays; public class DosyaIslemleriAraclari { public FileDialog DosyaPenceresi; 3

public String DosyaIslemleriMesaj; public void YuklenecekDosyayiSor(String IzinVerilenMimeTipleri[]) { DosyaPenceresi = new FileDialog(new Frame(), "Lütfen Video Dosyası Seçin", FileDialog.LOAD); DosyaPenceresi.setVisible(true); String DosyaMimeTipi = DosyaMime(this.DosyaPenceresi.getDirectory() + this.dosyapenceresi.getfile()); if (!Arrays.asList(IzinVerilenMimeTipleri).contains(DosyaMimeTipi)) { this.dosyapenceresi=null; DosyaIslemleriMesaj= "Bu Dosya Türü desteklenmiyor, lütfen tekrar dosya seçiniz."; if (this.dosyapenceresi.getdirectory() == null) { DosyaIslemleriMesaj="Dosya Yolu okunamıyor, lütfen tekrar dosya seçiniz."; */ catch (Exception ex) { DosyaIslemleriMesaj = ex.getmessage(); public String DosyaMime(String DosyaYolu) { //MimetypesFileTypeMap mimetypesmap = new MimetypesFileTypeMap(); //String mimetype = mimetypesmap.getcontenttype(dosyayolu); FileNameMap filenamemap = URLConnection.getFileNameMap(); String mimetype = filenamemap.getcontenttypefor(dosyayolu); return mimetype; public String DosyaTuru(String Mime) { String Tur = ""; if (Mime.equals("image/png")) { Tur = "png"; else if (Mime.equals("image/gif")) { Tur = "gif"; else if (Mime.equals("image/jpg") Mime.equals("image/jpeg")) { Tur = "jpg"; return Tur; */ ve FTP İşlemlerimizi Yapan class, bu classta SwingWorker kullandık çünkü aynı anda iki iş yapılması gerekiyordu, Dosyanın Uploadı ve Progress Barın güncellenmesi: import java.io.bufferedinputstream; import java.io.bufferedoutputstream; import java.io.file; import java.io.fileinputstream; import java.io.inputstream; import java.io.outputstream; import java.io.printwriter; import java.io.stringwriter; import java.net.url; import java.net.urlconnection; import javax.swing.jlabel; import javax.swing.jprogressbar; 4

import javax.swing.swingworker; public class FTPBaglantisi { private String Sunucu = "hebelehubele.com"; private String KullaniciAdi = "hebele"; private String Sifre = "hubele"; public URLConnection FTPBagi; public String FTPMesaj; public synchronized boolean SunucuyaBaglan(String SunucuyaYazilacakDosya) { URL url = new URL("ftp://" + KullaniciAdi + ":" + Sifre + "@" + Sunucu + "/" + SunucuyaYazilacakDosya + ";type=i"); FTPBagi = url.openconnection(); return true; catch (Exception ex) { StringWriter sw0 = new StringWriter(); PrintWriter p0 = new PrintWriter(sw0, true); ex.printstacktrace(p0); FTPMesaj = sw0.getbuffer().tostring(); return false; class FTPDosyaUpload extends SwingWorker { JProgressBar Yukleniyor; public JLabel FTPMesaj; public String GonderilenDosya; public URLConnection FTPBag; public void FTPDosyaUpload(String GonderilecekDosya, URLConnection FTPBaglantisi, JLabel Mesajlar){ this.gonderilendosya=gonderilecekdosya; this.ftpbag=ftpbaglantisi; this.ftpmesaj=mesajlar; */ @Override protected Void doinbackground() throws Exception { File GidecekDosya = new File(this.GonderilenDosya); //InputStream is = new FileInputStream(GonderilecekDosya); InputStream is = new FileInputStream(GidecekDosya); BufferedInputStream bis = new BufferedInputStream(is); OutputStream os = this.ftpbag.getoutputstream(); BufferedOutputStream bos = new BufferedOutputStream(os); byte[] buffer = new byte[1024]; int readcount; int Yuzde = ; long ToplamOkunan = ; long DosyaBoyutu = GidecekDosya.length(); while ((readcount = bis.read(buffer)) > ) { bos.write(buffer,, readcount); ToplamOkunan += readcount; Yuzde = (int) (ToplamOkunan * 100 / DosyaBoyutu); setprogress(yuzde); 5

bos.close(); catch (Exception ex) { StringWriter sw0 = new StringWriter(); PrintWriter p0 = new PrintWriter(sw0, true); ex.printstacktrace(p0); this.ftpmesaj.settext(sw0.getbuffer().tostring()); return null; @Override protected void done() { if (!iscancelled()) { this.ftpmesaj.settext("ftp transferi ile Dosya yüklendi..."); public synchronized boolean DosyaIndir(String GonderilecekDosya) { InputStream is = FTPBagi.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); OutputStream os = new FileOutputStream(GonderilecekDosya); BufferedOutputStream bos = new BufferedOutputStream(os); byte[] buffer = new byte[1024]; int readcount; while ((readcount = bis.read(buffer)) > 0) { bos.write(buffer, 0, readcount); bos.close(); is.close(); // close the FTP inputstream this.ftpmesaj = "FTP transferi ile dosya İndirme işlemi yapıldı."; return true; catch (Exception ex) { StringWriter sw0 = new StringWriter(); PrintWriter p0 = new PrintWriter(sw0, true); ex.printstacktrace(p0); FTPMesaj = sw0.getbuffer().tostring(); */ return false; 6