⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 editor.java

📁 Java程序设计技巧与开发实例附书源代码。
💻 JAVA
字号:

import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class Editor
    extends Frame
    implements ActionListener, TextListener
{
   private MenuItem fileNew = new MenuItem("New");
   private MenuItem fileOpen = new MenuItem("Open ...");
   private MenuItem fileSave = new MenuItem("Save");
   private MenuItem fileSaveAs = new MenuItem("Save As ...");
   private MenuItem fileExit = new MenuItem("Exit");
   private TextArea text = new TextArea();
   private String file = "untitled";
   private boolean isDirty = false;

   public Editor()
   {
      super("Text Viewer");
      setTitle("Editor: untitled");
      Menu fileMenu = new Menu("File");
      fileMenu.add(fileNew);
      fileNew.addActionListener(this);
      fileMenu.add(fileOpen);
      fileOpen.addActionListener(this);
      fileMenu.addSeparator();
      fileMenu.add(fileSave);
      fileSave.addActionListener(this);
      fileMenu.add(fileSaveAs);
      fileSaveAs.addActionListener(this);
      fileMenu.addSeparator();
      fileMenu.add(fileExit);
      fileExit.addActionListener(this);
      text.addTextListener(this);
      MenuBar menu = new MenuBar();
      menu.add(fileMenu);
      setMenuBar(menu);
      setLayout(new BorderLayout());
      add("Center", text);
      setSize(400, 400);
      setVisible(true);
   }

   public void exitProgram()
   {
      if ( (isDirty) && (wantToSave()))
      {
         saveFile();
      }
      System.exit(0);
   }

   public void saveFile()
   {
      if (file.equals("untitled"))
      {
         saveFileAs();
      }
      else
      {
         savingFile();
      }
      isDirty = false;
   }

   public void saveFileAs()
   {
      FileDialog fd = new FileDialog(this, "Save File As", FileDialog.SAVE);
      fd.show();
      if (fd.getFile() != null)
      {
         file = fd.getDirectory() + fd.getFile();
         savingFile();
      }
      isDirty = false;
   }

   public void newFile()
   {
      if ( (isDirty) && (wantToSave()))
      {
         saveFile();
      }
      text.setText("");
      file = "untitled";
      setTitle("Editor: " + file);
      isDirty = false;
   }

   public void openFile()
   {
      if ( (isDirty) && (wantToSave()))
      {
         saveFile();
      }
      FileDialog fd = new FileDialog(this, "Open File", FileDialog.LOAD);
      fd.show();
      if (fd.getFile() != null)
      {
         file = fd.getDirectory() + fd.getFile();
         setTitle("Editor: " + file);
         try
         {
            BufferedReader in = new BufferedReader(new FileReader(file));
            String line = new String(""), s = new String("");
            while ( (line = in.readLine()) != null)
            {
               s += line + "\n";
            }
            in.close();
            text.setText(s);
            text.setCaretPosition(0);
         }
         catch (IOException ioe)
         {
            System.err.println(ioe);
         }
         isDirty = false;
      }
      fd.dispose();
   }

   public void textValueChanged(TextEvent te)
   {
      isDirty = true;
   }

   public void actionPerformed(ActionEvent ae)
   {
      if (ae.getSource() == fileExit)
      {
         exitProgram();
      }
      else if (ae.getSource() == fileNew)
      {
         newFile();
      }
      else if (ae.getSource() == fileOpen)
      {
         openFile();
      }
      else if (ae.getSource() == fileSave)
      {
         saveFile();
      }
      else if (ae.getSource() == fileSaveAs)
      {
         saveFileAs();
      }
   }

   private boolean wantToSave()
   {
      ConfirmDialog saving = new ConfirmDialog(this, "File not Saved",
                               "Do you want to save "+ file );
      return saving.isOkay;
   }

   private void savingFile()
   {
      try
      {
         PrintWriter out = new PrintWriter(new FileWriter(file));
         out.print(text.getText());
         out.close();
      }
      catch (IOException ioe)
      {
         System.out.println(ioe);
      }
      setTitle("Editor: " + file);
   }

   public static void main(String args[])
   {
      Editor editor = new Editor();
   }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -