İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır

Dialog'lar

Dialog

Ekrana bir Diyalog kutusu getiren class Dialog'dur. Genellikle kullanıcıdan kısa zamanda bir bilgi beklendiğinde kullanılır. Frame'den fazla bir farkı olmadığı için aynı şekilde kullanılabilir. Diyaloğun 'modal' olması durumunda kullanıcının asıl pencrede işlem yapması engellenir. Modal yapmak için

mydialog.setModal(true);

demek veya constructor'da modal parametresini true olarak girmek gerekir.

File Dialog

FileDialog, kullanıcı bir dosyayı açmak istediğinde veya belli bir yere farklı kaydetmek istediğinde kullanılır. Basit bir text editörü yapalım. Bir file menüsü olsun ve text dosyalarını açma ve saklama özelliğine sahip olmasını sağlayalım. FileDialog class'ı ekrana kullanıcının dosyayı belirleyebileceği bir diyalog kutusu getirir. Bu class LOAD (Open) ve SAVE modunda açılabilir. Kullanıcının seçtiği dosyanın adını ve directory'si (ayrı ayrı) öğrenilebilir. Dosya açarken

FileDialog dialog=new FileDialog(this,"Open",FileDialog.LOAD);
dialog.setVisible(true);
String filepath=dialog.getDirectory()+dialog.getFile();

şeklinde bir kod parçası kullanılır. Dosyayı başka bir adla kaydederken bu kodda sadece

FileDialog dialog=new FileDialog(this,"Save",FileDialog.SAVE);

şeklinde değişiklik yapmak yeterlidir.

Göster Gizle Kopar Satır Gizle Satır Göster
  1 import java.awt.*;
  2 import java.awt.event.*;
  3 import java.io.*;
  4 public class TextEditor
  5   extends Frame
  6   implements ActionListener
  7 {
  8   private TextArea area=new TextArea();
  9   private String filepath="Untitled.txt";
 10   public TextEditor() {
 11     setBounds(0,0,640,480);
 12     putMenuBar();
 13     setLayout(new BorderLayout());
 14     add(area,BorderLayout.CENTER);
 15   }
 16   private void putMenuBar(){
 17     Menu file=new Menu("File");
 18     putMenuItem(file,"New");
 19     putMenuItem(file,"Open");
 20     putMenuItem(file,"Save");
 21     putMenuItem(file,"Save As");
 22     file.addSeparator();
 23     putMenuItem(file,"Exit");
 24     MenuBar menubar=new MenuBar();
 25     menubar.add(file);
 26     setMenuBar(menubar);
 27   }
 28   private void putMenuItem(Menu menu,String label){
 29     MenuItem item=new MenuItem(label);
 30     item.addActionListener(this);
 31     menu.add(item);
 32   }
 33   public void actionPerformed(ActionEvent event){
 34     MenuItem item=(MenuItem) event.getSource();
 35     String label=item.getLabel();
 36     if(label.equals("New")){
 37       handleNew();
 38     }else if (label.equals("Open")){
 39       handleOpen();
 40     }else if (label.equals("Save")){
 41       handleSave();
 42     }else if (label.equals("Save As")){
 43       handleSaveAs();
 44     }else if (label.equals("Exit")){
 45       handleExit();
 46     }
 47   }
 48   private void setContent(String text,String filepath){
 49     area.setText(text);
 50     this.filepath=filepath;
 51     setTitle(filepath);
 52   }
 53   private void handleNew(){
 54     setContent("","Untitled.txt");
 55   }
 56   private void handleOpen(){
 57     try{
 58       FileDialog dialog=new FileDialog(this,"Open",FileDialog.LOAD);
 59       dialog.setVisible(true);
 60       String filepath=dialog.getDirectory()+dialog.getFile();
 61       String text=loadText(filepath);
 62       setContent(text,filepath);
 63     }catch(Exception e){
 64       e.printStackTrace();
 65     }
 66   }
 67   private void handleSave(){
 68     try{
 69       String text=area.getText();
 70       storeText(text,filepath);
 71     }catch(Exception e){
 72       e.printStackTrace();
 73     }
 74   }
 75   private void handleSaveAs(){
 76     try{
 77       FileDialog dialog=new FileDialog(this,"Save",FileDialog.SAVE);
 78       dialog.setVisible(true);
 79       String filepath=dialog.getDirectory()+dialog.getFile();
 80       setTitle(filepath);
 81       String text=area.getText();
 82       storeText(text,filepath);
 83     }catch(Exception e){
 84       e.printStackTrace();
 85     }
 86   }
 87   private void handleExit(){
 88     System.exit(0);
 89   }
 90   private String loadText(String filepath)
 91     throws IOException
 92   {
 93     FileReader fr=new FileReader(filepath);
 94     BufferedReader in=new BufferedReader(fr);
 95     String text="";
 96     String line=null;
 97     while((line=in.readLine())!=null){
 98       text+=line;
 99     }
100     in.close();
101     return text;
102   }
103   private void storeText(String text,String filepath)
104     throws IOException
105   {
106     FileWriter fw=new FileWriter(filepath);
107     PrintWriter out=new PrintWriter(fw);
108     out.print(text);
109     out.close();
110   }
111   public static void main(String[] args){
112     TextEditor editor=new TextEditor();
113     editor.setVisible(true);
114   }
115 }

Dosya Listesi

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır