Javada Dosya Acmak

Erkan Sezer

Asagidaki ornekte herhangi bir txt dosyayi nasil acabilecegimizi gosterecegim, aslinda bunu C# da asagidaki gibi yapiyoruz ama Javada olan kucuk ama farkli nuanslardan da bahsedecegim.

System.Diagnostics.Process.Start("C:\\test.txt");

Peki bu islemi Java da nasil yapacagiz?  Asagida yine tek satir olan bunun kucuk bir ornegi var fakat bundan once projemize asagidaki package i import etmeliyiz oncelikle.

import java.io.IOException;

Ayrica Javada IO, Database gibi islemleri yaparken try - catch bloklari kullanmaliyiz yoksa yazdigimiz kod hata verecektir , bu Visual Studio da olmayan bu ozellik aslinda bizi bircok sorundan kurtarmaktadir. Java bu konuda Proaktif bir yaklasim sergilemektedir (Yavuz hocamin bunu okursa guldugunu duyar gibiyim :))

 try
{
            Runtime.getRuntime().exec("notepad C:/test.txt");
}
catch (Exception Exc)
{
            JOptionPane.showMessageDialog(rootPane, Exc.getMessage());
}





23 Ocak 2010 Cumartesi


Javada Dosya Silmek

Erkan Sezer

Java ile herhangi bir yerdeki dosyayi silme islemi icin kucuk bir ornek yapacagiz, aslinda tahmin edebileceginiz gibi yapacagimiz islem cok basit.

Dosyanin pathini gostererek bunu silmek , hatta C# ile bu islemi yapan arkadaslarimiz varsa bunu Java ile yapmak nerdeyse 30 saniye alacaktir. Ornek kod asagidaki gibidir, tabiki siz bu koda uyarilar verebilir veya isleminizi sonucunu ekrana yazabilirsiniz , ben sadece silme islemini yapiyorum.

Koddanda anlasilacagi gibi  C diskindeki Erkan.txt dosyasini siliyoruz.

try
{
            File ff=new File("c:\\erkan.txt");
            ff.delete();
}
catch (Exception Exc)
{
            JOptionPane.showMessageDialog(rootPane, Exc.getMessage());
}

23 Ocak 2010 Cumartesi


.jar Olusturmak ve .jar`i Refere Etmek

Erkan Sezer

Java ile ilgili formlarda bir soru gordum ve bunu bircok arkadasimiz sormus, kisaca bunu anlatacagim.

Java da olusturdugumuz classlari jar olarak olusturma ve bunu daha sonra farkli java projelerinden kullanma bizler gibi yazilimcilar icin vazgecilmezdir. Oncelikle olusturdugumuz classlar sonrasinda projemizi sag tiklar properties den gelen pencerede build treesine gidersek Packaging gelecektir onu checkleyip OK e tiklarsak artik bizimde bir .jar dosyamiz olacaktir.

Bunu da baska bir projeye refere ederken yine projede Properties tabina gelerek burdan Libraries e geliriz ve bize gelen sagdaki ekranda Add Jar/Folder secilerek olusturulmus .jar dosyamizi projemize ekleriz.

Sonucta ne kadar cok kutuphanemiz varsa bizim icin o kadar tecrube ve kolaylik anlamini tasiyacaktir ve yapmak istediklerimizi cok kolay sekilde gerceklestirecegiz.

12 Aralık 2009 Cumartesi


Java da Enums

Erkan Sezer

Javada enumlar ile iglili kucuk bir ornek yapacagim. Oncelikler enumlarim oldugu bir class yazacagiz ve UI dan bu classidaki enum degerlerini cagirip her zamanki gibi joptionpane ile ekrana basacagim.

Oncelikle sisteme dokuman ekledigimizi yani bir dokuman yonetim sistemindeki dokuman turlerini enumlar ile belirledigimiz dusunelim.

DocType isimli bir java classimiz olsun ve bu class da da asagidaki gibi bir procedure yazalim. Dikkat edersen documentType isimli enum  tanimladik ve degerlerini de "kambiyo","ik" .. gibi belirttik.

public class DocType
{
    enum documentType {kambiyo , bireyselKredi , kurumsalKredi , ik, musteri};
}

Artik yapmamiz gereken bu enumlari UI da asagidaki gibi gostermek. Kisacasi enum tanimliyoruz ve bunu da JoptionPane ile ekrana mesajlar halinda basiyoruz.

JOptionPane.showMessageDialog(null, DocType.documentType.bireyselKredi.toString());
JOptionPane.showMessageDialog(null, DocType.documentType.kambiyo.toString());
JOptionPane.showMessageDialog(null, DocType.documentType.ik.toString());

29 Kasım 2009 Pazar


StringTokenizer

Erkan Sezer

Javada StringTokenizer stringdeki bosluklari ayrac kabul ederek stringi bolmemizi saglayan cok kullanisli bir classtir.

Ornegi asagidaki gibidir ve yaptigimiz islem aslinda textimiz icindeki her kelimeyi ayri ayri ekrana popup olarak yazmaktir.

Erkan , Sezer , FileNet , P8 , Platformunda , Calisiyor artik hepsi farkli farkli degerlerdir.

        String cumle1="Erkan Sezer Filenet P8 Platformunda Calisiyor";
        StringTokenizer st1 = new StringTokenizer(cumle1);
        while(st1.hasMoreTokens())
        {
            JOptionPane.showMessageDialog(rootPane, st1.nextToken());
        }

23 Kasım 2009 Pazartesi


Java Ile Generic Class

Erkan Sezer

Java ile asagida birkac tane Generic ornegi verecegim. Butun ornekler nerdeyse ayni birini anlamaniz digerlerini anlamaniz icin yeterli olacaktir.

Butun orneklerde oncelikle list string veya integer tipinde olusturuluyor. Daha sonra list e veriler ekleniyor ve Iterator yardimi ile While dongusu kullanilarak list icinde donuluyor.  Koddan da anlayabileceginiz gibi JoptionPane ile de ekrana list icinde ki tum elemanlari mesaj olarak basiyoruz. Burda tek dikkat etmemiz gereken , eger tanimladigimiz list String turunde ise string degerler , Integer turunde ise Integer degerler almaktadir.

Ayrica while dongusunde Iterator un hasNext boolen degeri ile iteratorun dongu icinde ilerlemesi saglaniyor.

        ArrayList<String> liste = new ArrayList<String>();
        liste.add("Erkan");
        liste.add("Sezer");
        liste.add("FileNet");
        liste.add(".NET");

        Iterator<String> iter = liste.iterator();
        while (iter.hasNext())
        {
            JOptionPane.showMessageDialog(rootPane, iter.next());
        }

       
        ArrayList<Integer> Ilinste = new ArrayList<Integer>();
        Ilinste.add(10);
        Ilinste.add(20);
        Ilinste.add(30);
        Ilinste.add(40);
       
        Iterator<Integer> iiter = Ilinste.iterator();
        while (iiter.hasNext())
        {
            JOptionPane.showMessageDialog(rootPane, iiter.next());
        }


        List<String> stringList = new ArrayList<String>();
        stringList.add("Kuveyt Turk");
        stringList.add("Operasyon Merkezi");
        stringList.add("Bilgi Islem");

        Iterator<String> striter = stringList.iterator();
        while (striter.hasNext())
        {
            JOptionPane.showMessageDialog(rootPane, striter.next());
        }


        List<Integer> intList = new ArrayList<Integer>();
        intList.add(100);
        intList.add(200);
        intList.add(300);

        Iterator<Integer> intIter = intList.iterator();
        while (intIter.hasNext())
        {
            JOptionPane.showMessageDialog(rootPane, intIter.next());
        }


23 Kasım 2009 Pazartesi


Java Web Service

Erkan Sezer

Sitelerde ve forumlarda devamli su bilgileri gorursunuz. Java ile yazilan web service yi .Net ile kullanamayiz , WSDL i her zaman problem olusturur veya XML parse hatalari aliriz. Buna benzer bircok yazilar var formlarda.

Aslinda bunu bende cok merak ediyordum, sonunda Java ile basit bir web service yazdim ve bunu da .Net e referans olarak ekledim , web service sadece bana girmis oldugum string datayi return ediyordu.

Butona tikladim ve  : evet bana girmis oldugum datayi return etti :) Tabiki web service ler bu kadar basit asla degil , komplike cok islemler yapan web service ler var benimkisi cok basit anlamda girilen degeri return ediyordu fakat bunun basarili olmasini gormek guzel.

Simdiki hedef .Net ile yazilan web service yi Java ortaminda cagirmak bakalim nasil olacak?

Bu konuyla ilgili olarak her turlu sorunuzu maille bana bildirebilirsiniz. Mail adresim : info@erkansezer.com veya Iletisim linkinden sorularinizi sorabilirsiniz.

13 Kasım 2009 Cuma


Java Da Interface Kullanımı

Erkan Sezer

Java`da interface kullanimi ile ilgili bir ornek yazacagim. Bildigimiz gibi interface ler kullanicin bilmesine gerek kalmayan bilgiler ile kullaniciyi yani burdaki yazilimciyi ugrastirmadan kodlama yapabilemelerine olanak saglayan ve gereksiz islemler ile yazilimciyi yormamak adina kullanilan yapilardir.

Burdaki ornekte kullaniclarin Dokuman Yonetim Sistemine belge ekleyeceklerini dusulenil ama oncelikle hangi departmanda bu islemin yapilacagini yani departman bilgisini bize veren bir interface ve bunu implemente eden class lar yazacagiz, classlardan departman bilgisini yazdiracagiz.

Oncelikle asagidaki gibi interface imizi olusturuyoruz ve daha sonra sirasi ile bankacilik , kambiyo ve fon islemleri icin class lari yaziyoruz ve bu interface den implemente ediyoruz.

public interface Departman
{
       public String Departman();
}

public class Kambiyo implements Departman
{
    public  String Departman()
    {
        return "Birim Ismi: Kambiyo Dokuman Ekleme";
    }
}

public class Fon implements Departman
{
    public  String Departman()
    {
        return "Birim Ismi: Fon Sistem Dokuman Ekleme";
    }
}

public class Bankacilik implements Departman
{
    public  String Departman()
    {
        return "Birim Ismi: Bankacilik Dokuman Ekleme";
    }
}

Implemente etmek icin burda implements keyword unu kullaniyoruz. C# da ise bu islemi : isareti ile yapmaktayiz.

Daha sonra hangi departmanin kullanildigini ekranimizi su sekilde yazdiyoruz.

Departman bnk=new Bankacilik();
System.out.println(bnk.Departman());

Departman fonislemleri=new Fon();
System.out.println(fonislemleri.Departman());

Departman kmb=new Kambiyo();
System.out.println(kmb.Departman());

Ekran ciktisi asagidaki gibi olacaktir.

Birim Ismi: Bankacilik Dokuman Ekleme
Birim Ismi: Fon Sistem Dokuman Ekleme
Birim Ismi: Kambiyo Dokuman Ekleme


02 Ağustos 2009 Pazar


Tarihsel Islemler

Erkan Sezer

Her dilde oldugu gibi Javada da ozellikler veri tabani ile yaptigimiz islemlerde tarih degerlerini formatlanmis olarak goremek isteriz.

Asagida bugunun tarihinin hem tarih hemde saat bazinda ayri ayri formatlanmis bicimlari vardir, tabiki her zaman yaptigimiz gibi bize geri donus degerlerinin mesaj pencelerinde gosterecegiz. Bunu C# da MessageBoxlar ile Java da ise JoptionPane`de yapmaktayiz.

Ayrica kodlardanda gorebileceginiz gibi birkac cesiot dateformat vardir. Default ,  Short , Medium gibi.

         Date now = new Date();
         JOptionPane.showMessageDialog(null, DateFormat.getDateInstance().format(now));
         JOptionPane.showMessageDialog(null, DateFormat.getDateInstance(DateFormat.SHORT).format(now));
         JOptionPane.showMessageDialog(null, DateFormat.getDateInstance(DateFormat.MEDIUM).format(now));
         JOptionPane.showMessageDialog(null, DateFormat.getDateInstance(DateFormat.LONG).format(now));
         JOptionPane.showMessageDialog(null, DateFormat.getDateInstance(DateFormat.FULL).format(now));

         JOptionPane.showMessageDialog(null, DateFormat.getTimeInstance().format(now));
         JOptionPane.showMessageDialog(null, DateFormat.getTimeInstance(DateFormat.SHORT).format(now));
         JOptionPane.showMessageDialog(null, DateFormat.getTimeInstance(DateFormat.MEDIUM).format(now));
         JOptionPane.showMessageDialog(null, DateFormat.getTimeInstance(DateFormat.LONG).format(now));
         JOptionPane.showMessageDialog(null, DateFormat.getTimeInstance(DateFormat.FULL).format(now));

 


13 Temmuz 2009 Pazar


Klavyeden Basilan Tus Degeri

Erkan Sezer

Java ile simdi klavyeden basilan tusun degerini alip bunu formumuzun captionunda gosterecegiz.

Klavyeden bir tusa basilinca ilk calisan event KeyPressed eventidir, bu ornegimizde bundan yararlanacagiz.

Kod blagunda kullandigim getKeyChar metodu klavyeden girilen karakteri verecektir. setTitle ise formun captionuna deger atamaktadir.

String veri="";
veri = veri + evt.getKeyChar();
this.setTitle(veri);


03 Temmuz 2009 Perşembe


Mukemmel Sayiyi Bulmak

Erkan Sezer

Bu ipucumuz Java ile yazacagim ilk ipucu olmasi acisindan da benim icin ayri bir degerde, ipucumuz ise asagidadir.

Java ile belirlik bir aralikta yer alan mukemmel sayisi bulacagiz. Mukemmel sayi; kendisi disinda bolenlerinin toplami kendisine esit olan sayidir. Biz burda 1 ile 50 degerleri icinde yer alan mukemmel sayilari bularak her zamanki gibi ekrana mesajla bastiracagiz.

for (int i =1; i<50;i++)
        {
            int bol= 0;
            for (int j=1; j<=i-1;j++)
            {
                if(i%j==0)
                {
                    bol = bol+j;
                }
            }
            if (bol==i)
            {
                JOptionPane.showMessageDialog(null, i);
            }
        }

Ilk dongu tum sayilari dolasmakta ikincisi ise dolastigimiz sayilarin icinde sayisin kendinese kadar olan degerler icinde bolenlerini bulmaktadir. Son olarak mesajla da bunu gosteriyoruz. Bize 6 ve 28 sayilari gelecektir. Bunlarinda sira ile kendisi haric bolenleri toplami asagida gosterilmistir.

6 = 3+2+1

28=14+7+4+2+1


03 Temmuz 2009 Perşembe