学习java有两个月了,做个记事本做个总结,程序实现了windows记事本的大多数功能,涉及了文件操作,字符串操作,简单的界面设计,与事件监听。
/Note.java
package heaven;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;
import java.text.SimpleDateFormat;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.KeyStroke;
public class Note {
static Window win;
public static void main(String[] args) {
win=new Window("记事本");
}
}
class Window extends JFrame implements ActionListener{
JMenuBar menubar;
JMenu menu1,menu2,menu3,menu4;
JPopupMenu menum;
JMenuItem
itemCopy,itemCut,itemPaste,itemSelectAll,itemDel,itemDate;
JMenuItem
itemCreat,itemOpen,itemSave,itemClose;
JMenuItem
itemCopym,itemCutm,itemPastem,itemSelectAllm,itemDelm;
JMenuItem itemFont,itemHelp;
JTextArea text1,text2;
int n;
JFileChooser fileChooser;
Date nowTime;
Window(String s){
setTitle(s);
setSize(300,400);
setLocation(120,120);
setVisible(true);
fileChooser=new
JFileChooser("c:/");
menubar=new JMenuBar();
menu1=new JMenu("文件");
itemCreat=new
JMenuItem("新建");
itemOpen=new
JMenuItem("打开");
itemSave=new
JMenuItem("保存");
itemClose=new
JMenuItem("退出");
itemCreat.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
itemOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
itemSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
menu1.add(itemCreat);
menu1.add(itemOpen);
menu1.add(itemSave);
menu1.add(itemClose);
menubar.add(menu1);
menu2=new JMenu("编辑");
itemCopy=new
JMenuItem("复制");
itemCut=new
JMenuItem("剪贴");
itemPaste=new
JMenuItem("粘贴");
itemSelectAll=new
JMenuItem("全选");
itemDel=new
JMenuItem("删除");
itemDate=new
JMenuItem("时间/日期");
itemCopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
itemCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
itemPaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
itemSelectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));
itemDel.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,InputEvent.CTRL_MASK));
itemDate.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,InputEvent.CTRL_MASK));
menu2.add(itemCopy);
menu2.add(itemCut);
menu2.add(itemPaste);
menu2.add(itemSelectAll);
menu2.add(itemDel);
menu2.add(itemDate);
menubar.add(menu2);
menu3=new JMenu("格式");
itemFont=new
JMenuItem("字体");
itemFont.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK));
menu3.add(itemFont);
menubar.add(menu3);
menu4=new JMenu("帮助");
itemHelp=new
JMenuItem("关于记事本");
itemHelp.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MASK));
menu4.add(itemHelp);
menubar.add(menu4);
setJMenuBar(menubar);
itemCopym=new
JMenuItem("复制");
itemCutm=new
JMenuItem("剪贴");
itemPastem=new
JMenuItem("粘贴");
itemSelectAllm=new
JMenuItem("全选");
itemDel=new
JMenuItem("删除");
menum=new JPopupMenu();
menum.add(itemCopym);
menum.add(itemCutm);
menum.add(itemPastem);
menum.add(itemSelectAllm);
menum.add(itemDel);
text1=new JTextArea();
text1.setLineWrap(true);
text1.setWrapStyleWord(false);
add(new
JScrollPane(text1),BorderLayout.CENTER);
validate();
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
text1.addMouseListener(new
MouseAdapter(){
public void
mousePressed(MouseEvent e){
if(e.getModifiers()==InputEvent.BUTTON3_MASK)
menum.show(text1,e.getX(),e.getY());
}
});
itemCopy.addActionListener(this);
itemCut.addActionListener(this);
itemPaste.addActionListener(this);
itemSelectAll.addActionListener(this);
itemDel.addActionListener(this);
itemDate.addActionListener(this);
itemCopym.addActionListener(this);
itemCutm.addActionListener(this);
itemPastem.addActionListener(this);
itemSelectAllm.addActionListener(this);
itemDel.addActionListener(this);
itemCreat.addActionListener(this);
itemOpen.addActionListener(this);
itemSave.addActionListener(this);
itemClose.addActionListener(this);
itemFont.addActionListener(new
ziti());
itemHelp.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==itemCopy)
text1.copy();
else
if(e.getSource()==itemCut)
text1.cut();
else
if(e.getSource()==itemPaste)
text1.paste();
else
if(e.getSource()==itemSelectAll)
text1.selectAll();
else
if(e.getSource()==itemDel)