|
|
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.
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 }
|
|