Java实现的简易记事本

时间:2022-05-12 09:22:47

本文实例讲述了Java实现的简易记事本。分享给大家供大家参考。具体如下:

感觉这个没有自己以前用Windows API写的好看了。。。

JDK Version : 1.7.0

效果如下图所示:

Java实现的简易记事本

Java实现的简易记事本

Java实现的简易记事本

源代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import java.io.*;
import java.awt.*;
import java.awt.event.*;
/**
 * The Main Window
 * @author Neo Smith
 */
class PadFrame extends Frame
{
  private MenuBar mb;
  private Menu menuFile;
  private Menu menuEdit;
  private MenuItem[] miFile;
  private TextArea ta;
  final private Frame frame = this;
  /**
   * The inner class
   * Message Handle
   */
  class EventExit implements ActionListener
  {
    public void actionPerformed(ActionEvent e)
    {
      System.exit(0);
    }
  }
  class SystemExit extends WindowAdapter
  {
    public void windowClosing(WindowEvent e)
    {
      System.exit(0);
    }
  }
  class EventMenuClose implements ActionListener
  {
    public void actionPerformed(ActionEvent e)
    {
      ta.setText(null);
    }
  }
  class EventOpenFile implements ActionListener
  {
    public void actionPerformed(ActionEvent e)
    {
      //Create the OpenFile Dialog
      FileDialog dlg = new FileDialog(frame,"Open Files",FileDialog.LOAD);
      dlg.show();
       
      String strPath;
      if((strPath = dlg.getDirectory()) != null)
      {
        //get the full path of the selected file
        strPath += dlg.getFile();
         
        //open the file
        try
        {
          FileInputStream fis = new FileInputStream(strPath);
          BufferedInputStream bis = new BufferedInputStream(fis);
          byte[] buf = new byte[3000];
          int len = bis.read(buf);
           
          ta.append(new String(buf,0,len));
          bis.close();
        }
        catch(Exception ex)
        {
          ex.printStackTrace();
        }
      }
    }
  }
  /**
   * Construction Method
   * Adding Menu and TextArea components
   * @param strTitle
   */
  public PadFrame(String strTitle)
  {
    super(strTitle);
    this.setLocation(400,200);
    this.setSize(900, 630);
     
    //Create the Menu Bar
    mb = new MenuBar();
    menuFile = new Menu("File");
    menuEdit = new Menu("Edit");
    miFile = new MenuItem[]{new MenuItem("Open"),new MenuItem("Close"),new MenuItem("Exit")};
    this.setMenuBar(mb);
    mb.add(menuFile);
    mb.add(menuEdit);
    for(int i = 0 ; i < miFile.length ; ++i)
    {
      menuFile.add(miFile[i]);
    }
    //Add event handle
    setMenuEventHandle(new EventExit(),"File",2);
    setMenuEventHandle(new EventOpenFile(),"File",0);
    setMenuEventHandle(new EventMenuClose(),"File",1);
    this.addWindowListener(new SystemExit());
     
    //add the TextArea component
    ta = new TextArea(30,30);
    this.add(ta);
  }
  public void setMenuEventHandle(ActionListener al,String strMenu,int index)
  {
    if(strMenu == "File")
    {
      miFile[index].addActionListener(al);
    }
  }
  public int getMenuItemAmount(String strMenu)
  {
    if("File" == strMenu)
    {
      return miFile.length;
    }
     
    return -1;
  }
  public static void main(String[] args)
  {
    PadFrame f = new PadFrame("NotePad");
    f.show();
  }
}

希望本文所述对大家的java程序设计有所帮助。