首页 > 学院 > 开发设计 > 正文

Java课Editor

2019-11-17 04:09:07
字体:
来源:转载
供稿:网友
view plaincopy to clipboardPRint?
package MyFile;    
import java.awt.*;    
import java.io.*;    
import java.awt.datatransfer.*;    
import java.awt.event.*;    
  
public class Editor extends Frame implements ActionListener {    
   TextArea textArea = new TextArea();    
   MenuBar menuBar = new MenuBar();    
   Menu fileMenu = new Menu("文件");    
   MenuItem newItem = new MenuItem("新建");    
   MenuItem openItem = new MenuItem("打开");    
   MenuItem saveItem = new MenuItem("保存");    
   MenuItem saveAsItem = new MenuItem("另存为");    
   MenuItem exitItem = new MenuItem("退出");    
   Menu editMenu = new Menu("编辑");    
   MenuItem selectItem = new MenuItem("全选");    
   MenuItem copyItem = new MenuItem("复制");    
   MenuItem cutItem = new MenuItem("剪切");    
   MenuItem pasteItem = new MenuItem("粘贴");    
   String fileName = null;    
   Toolkit toolKit=Toolkit.getDefaultToolkit();  //工具箱    
   Clipboard clipBoard=toolKit.getSystemClipboard();//剪切    
      
   private FileDialog openFileDialog= new FileDialog(this,"Open File",FileDialog.LOAD);    
   private FileDialog saveAsFileDialog= new FileDialog(this,"Save File As",FileDialog.SAVE);    
  
  public Editor(){    
    setFont(new Font("Times New Roman",Font.PLAIN,12));    
    setBackground(Color.white);    
    setSize(400,300);    
    fileMenu.add(newItem);    
    fileMenu.add(openItem);    
    fileMenu.addSeparator();    
    fileMenu.add(saveItem);    
    fileMenu.add(saveAsItem);    
    fileMenu.addSeparator();    
    fileMenu.add(exitItem);    
    editMenu.add(selectItem);    
    editMenu.addSeparator();    
    editMenu.add(copyItem);    
    editMenu.add(cutItem);    
    editMenu.add(pasteItem);    
    menuBar.add(fileMenu);    
    menuBar.add(editMenu);    
    setMenuBar(menuBar);    
    add(textArea);    
    addWindowListener(new WindowAdapter(){    
                      public void windowClosing(WindowEvent e){    
                          System.exit(0);    
                        }    
                      });    
    newItem.addActionListener(this);    
    openItem.addActionListener(this);    
    saveItem.addActionListener(this);    
    saveAsItem.addActionListener(this);    
    exitItem.addActionListener(this);    
    selectItem.addActionListener(this);    
    copyItem.addActionListener(this);    
    cutItem.addActionListener(this);    
    pasteItem.addActionListener(this);    
  }    
  public void actionPerformed(ActionEvent e) {    
    Object eventSource = e.getSource();    
    if(eventSource == newItem){    
      textArea.setText("");    
    }else if(eventSource == openItem){    
      openFileDialog.show();    
      fileName = openFileDialog.getDirectory()+openFileDialog.getFile();    
      if(fileName != null)    
        readFile(fileName);    
    }else if (eventSource == saveItem){    
      if(fileName != null)    
        writeFile(fileName);    
    }else if(eventSource == saveAsItem){    
      saveAsFileDialog.show();    
      fileName = saveAsFileDialog.getDirectory()+saveAsFileDialog.getFile();    
      if (fileName!= null)    
        writeFile(fileName);    
    }else if(eventSource == selectItem){    
       textArea.selectAll();    
    }else if(eventSource == copyItem){    
       String text=textArea.getSelectedText();    
       StringSelection selection=new StringSelection(text);    
       clipBoard.setContents(selection,null);    
    }else if(eventSource == cutItem){    
       String text=textArea.getSelectedText();    
       StringSelection selection=new StringSelection(text);    
       clipBoard.setContents(selection,null);    
       textArea.replaceRange("",textArea.getSelectionStart(),textArea.getSelectionEnd());    
    }else if(eventSource == pasteItem){    
       Transferable contents=clipBoard.getContents(this);    
       if(contents==null) return;    
       String text;    
       text="";    
       try{    
            text=(String)contents.getTransferData(DataFlavor.stringFlavor);//剪切内容传给字符串    
        }catch(Exception exception){    
        }    
       textArea.replaceRange(text,textArea.getSelectionStart(),textArea.getSelectionEnd());    
    }else if(eventSource == exitItem){    
      System.exit(0);    
    }    
  }    
  
  public void readFile(String fileName){    
    try{    
      File file = new File(fileName);    
      FileReader readIn = new FileReader(file);    
      int size = (int)file.length();    
      int charsRead = 0;    
      char[] content = new char[size];    
      while(readIn.ready())    
        charsRead += readIn.read(content, charsRead, size - charsRead);    
      readIn.close();    
      textArea.setText(new String(content, 0, charsRead));    
    }    
    catch(IOException e){    
      System.out.println("Error opening file");    
    }    
  }    
  public void writeFile(String fileName){    
    try{    
      File file = new File (fileName);    
      FileWriter writeOut = new FileWriter(file);    
      writeOut.write(textArea.getText());    
      writeOut.close();    
    }    
    catch(IOException e){    
      System.out.println("Error writing file");    
    }    
  }    
        
}   
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表