10 Ocak 2012 Salı

JAVA DA MENÜ KAVRAMI-1

Menüler görsel programlama da önemli bir yer tutarlar. Günlük hayatta bilgisayar da kullandığımız programların çoğunda görebilirsiniz. En basit misal windows daki notepad uygulaması. Lafı fazla uzatmadan menü oluştururken izlememiz gereken yolu algoritmayı vereyim.

Menübar oluşturulur---->Bu menübar'a menüler yerleştirilir.---->Menülerin altına menücükler (meni item) yerleştirilebilir. Aşağıdaki koda dikkatlice bir göz atın. Ha unutmadan bu menücükler Jmenu de olabilir. JRadioButtonMenuItem da olabilir. Ayrıntıları aşağıda ki kodda görebilirsiniz.



package menuuygulamasi.pkg1;

import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;

public class MenuUygulamasi1 {
    public static void main(String[] args) {
        final JFrame x=new JFrame("Menu Uygulaması");
        x.setSize(350, 250);
        x.setLocationRelativeTo(null);
        x.setVisible(true);
        JMenuBar menubar=new JMenuBar();
        x.setJMenuBar(menubar);
       
        JMenu dosya=new JMenu("Dosya");
        JMenu yardım=new JMenu("Yardım");
        menubar.add(dosya);
        menubar.add(yardım);
       
        JMenuItem item1=new JMenuItem("Yeni");
        JMenuItem item2=new JMenuItem("Aç");
        JMenuItem item3=new JMenuItem("Yazdır");
        JMenuItem item4=new JMenuItem("Çık");
       
        dosya.add(item1);
        dosya.add(item2);
        dosya.addSeparator();
        dosya.add(item3);
        dosya.addSeparator();
        dosya.add(item4);
        item4.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });
       
       
        JMenu yazilim=new JMenu("Yazılım");
        JMenu donanim=new JMenu("Donanım");
        JMenu renk=new JMenu("Ara yüz");
       
        yardım.add(yazilim);
        yardım.add(donanim);
        yardım.add(renk);
       
        yazilim.add(new JMenuItem("Linux"));
        yazilim.add(new JMenuItem("Windows"));
        yazilim.add(new JMenuItem("MacOS"));
       
        donanim.add(new JMenuItem("Mouse"));
        donanim.add(new JMenuItem("Touchpad"));
       
        JRadioButtonMenuItem radioblue,radiosari,radioyesil;
        renk.add(radioblue=new JRadioButtonMenuItem("Mavi"));
       
        final Container y=x.getContentPane();
        radioblue.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                y.setBackground(Color.BLUE);
            }
        });
        renk.add(radiosari=new JRadioButtonMenuItem("Sarı"));
        radiosari.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                y.setBackground(Color.YELLOW);
            }
        });
        renk.add(radioyesil=new JRadioButtonMenuItem("Beyaz"));
        radioyesil.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                y.setBackground(Color.WHITE);
                
            }
        });
        ButtonGroup gr=new ButtonGroup();
        gr.add(radioblue);
        gr.add(radiosari);
        gr.add(radioyesil);
       
        x.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

Buradan kodların kaynak dosyasını ve çalıştırılabilir jar dosyasını indirebilirsiniz. İyi çalışmalar...

28 Kasım 2011 Pazartesi

JAVA DA DOSYA İŞLEME

Java da dosya işleme
Dosyalar
Giriş
Java dosya işleme babında içerisinde geniş sınıflar bulundurmaktadır. Temel sınıf File sınıfıdır. File sınıfı java.io paketinde bulunmaktadır. Dolayısıyla bu sınıfı kullanmak için bu paketi import etmemiz gerekir. Aşağıda ki örneğe bir bakalım;
import java.io.File;

public class Örnek {
    public static void main(String[] args)  throws Exception {
           
    }
}

File sınıfı FileOutputStream sınıfını baz alır. Bu sınıf ise OutputStream sınıfına dayanır.
Bir dosyayı kullanmak istiyorsak File sınıfının yapıcısını (constructor) oluşturmak gerekir. Yapıcılardan  biri  string tipinde bir , dosyanın adı veya dosyanın tam yolunu (path) argüman olarak alır. Tabi eğer dosyanın uzantısı varsa muhakkak onu da belirtmek gerekir. Aşağıda ki örneğe bir bakalım;
import java.io.File;
 
public class Örnek {
    public static void main(String[] args)  throws Exception {
            File dosya = new File("ornek.xpl");
    }
}

File sınıfının tek numarası bir dosya işlemi yapacağımızı planladığımızın belirtisi olmasıdır.

Dosya oluşturma
Eğer bir dosya oluşturma istiyorsak , dosyaya bir şeyler yazma ile mücehhez olan bir sınıf kullanmamız gerekir. Bunu yapmak için PrintWritter sınıfını kullanabiliriz. Bu sınıfta java.io paketinde tanımlıdır.
PrintWritter  sınıdı Writter sınıfını baz alır. Bu sınıf bir dosyaya yazma fonksiyonlarını barındırır.
Bu sınıfı kullanmadan önce class adına bir değişken tanımlarız. Bu sınıf bir çok yapıcıya (constructor) sahiptir. Yapıcılardan biri bir OutputStream nesnesini argüman alır. Yani bir File nesnesini PrintWritter yapıcısına geçiririz.  Aşağıda ki örnek de olduğu gibi;
import java.io.File;
import java.io.PrintWriter;

public class Aıştırma {
    public static void main(String[] args)  throws Exception {
            File ornekd = new File("ornek.xpl");
        PrintWriter pwgiris = new PrintWriter(dosyaornek);
    }
}


Dosyaya yazmak
PrintWritter nesnesi oluşturduktan sonra , istediklerimizi dosyaya yazabiliriz. Bu işi yapmak için PrintWritter  sınıfı print() ve println() metodlarını içerir.
import java.io.File;
import java.io.PrintWriter;

public class Ornek {
    public static void main(String[] args)  throws Exception {
            File ornekd = new File("ornek.xpl");
             PrintWriter pwgiris = new PrintWriter(dosya_ornek);

            pwgiris.println("Ankara");
            pwgiris.println("Erzurum");
            pwgiris.println(22.85);
            pwgiris.print(true);
    }
}


PrintWritter  sınıfının nesnesini kullanarak close() metodu ile dosyayı kapatabiliriz.
Dosyayı açmak için dosyanın adını File sınıfının yapıcısının içerisine yazmak yeterlidir.

Dosyadan okumak
Bir dosyadan veri okumak için , Scanner sınıfını kullanabiliriz. Bunu gerçekleştirmek için Scanner sınıfının yapıcısı File tipinde bir nesneyi argüman alır. Aşağıda ki örneğe bir göz atalım;
import java.io.File;
import java.util.Scanner;

public class Ornek {
    public static void main(String[] args)  throws Exception {
            File ornekd = new File("Ornek.xpl");
             Scanner tara = new Scanner(dosya_ornek);
    }
}

Dosyada ki veriler alt alta olan satırlarda saklanabilir. Dolayısıyla dosyadan satırları bir kere de while döngüsüyle okumamız gerekir. While  döngüsünün içerisinde Scanner nesnesini kullanırız argüman olarak. While ifadesinin içerisinde , Scanner nesnesi ile yaptığımız işlemde son satıra gelip gelinmediğine  bakarız. Bunu gerçekleştirmek için hasNext() metodundan yararlanırız. Bu metod bize true döndükçe Scanner nesnesi dosyanın sonuna gelmez ta ki false dönene kadar. Bu işlemi gerçekleştiren örnek bir kod aşağıda ki gibidir.
import java.io.File;
import java.util.Scanner;

public class Ornek {
    public static void main(String[] args)  throws Exception {
            File fleExample = new File("ornek.xpl");
        Scanner opnScanner = new Scanner(ornek_dosya);

                    while(nesne.hasNext()) {
                            System.out.println("Ad:    " +nesne.nextLine());
                            System.out.println("Soyad:     " +nesne.nextLine());
                            System.out.println("Saatlik maaş: " +nesne.nextLine());
                            System.out.println("Tam zamanlı mı?: " +nesne.nextLine());
            }
    }
}

Bu işlemlerden sonra dosyayı kapatmak için close()  metodunu kullanmayı unutmayalım.


Dosyayı silme
Dikkat! Dosyadan veri silme değil, dosyayı tamamen silmekten (ortadan kaldırmaktan )bahsediyorum. Bu işlem için delete() metodunu kullanırız.


Konuyla alakalı buradan örnek uygulamaları indirebilirsiniz . İyi çalışmalar...