- package demo;
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.*;
- import java.io.*;
- public class Calculator {
- JFrame f;
- MenuBar mb;
- Menu mu;
- JTextArea jta;
- MenuItem openItem, saveItem, closeItem;
- FileDialog openDia,saveDia;
- File file;
- public Calculator()
- {
- init();
- }
- public void init()
- {
- f=new JFrame("简易记事本");
- mb=new MenuBar();
- mu=new Menu("文件");
- openItem=new MenuItem("打开");
- saveItem=new MenuItem("保存");
- closeItem=new MenuItem("退出");
- jta=new JTextArea();
- f.add(jta);
- mu.add(openItem);
- mu.add(saveItem);
- mu.add(closeItem);
- mb.add(mu);
- f.setMenuBar(mb);
- openDia=new FileDialog(f, "打开", FileDialog.LOAD);
- saveDia=new FileDialog(f, "保存", FileDialog.SAVE);
- f.setBounds(200, 300, 500, 400);
- f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- f.setVisible(true);
- event();
- }
- public void event()
- {
- openItem.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e) {
- openFile();
- }
- });
- saveItem.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e) {
- saveFile();
- }
- });
- jta.addKeyListener(new KeyAdapter()
- {
- public void keyPressed(KeyEvent e){
- if(e.isControlDown() && e.getKeyCode() == KeyEvent.VK_S)
- {
- saveFile();
- }
- }
- });
- closeItem.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e) {
- System.exit(0);
- }
- });
- }
- public void openFile()
- {
- openDia.setVisible(true);
- String dirPath=openDia.getDirectory();
- String fileName=openDia.getFile();
- if(dirPath==null || fileName==null)
- return ;
- jta.setText("");
- file=new File(dirPath,fileName);
- try
- {
- BufferedReader br = new BufferedReader(new FileReader(file));
- String line = null;
- while((line=br.readLine())!=null)
- {
- jta.append(line+"\r\n");
- }
- br.close();
- }
- catch (IOException ex)
- {
- throw new RuntimeException("读取失败");
- }
- }
- public void saveFile()
- {
- if(file==null)
- {
- saveDia.setVisible(true);
- String dirPath = saveDia.getDirectory();
- String fileName = saveDia.getFile();
- if(dirPath==null || fileName==null)
- return ;
- file = new File(dirPath,fileName);
- }
- try {
- BufferedWriter bw=new BufferedWriter(new FileWriter(file));
- String info=jta.getText();
- bw.write(info);
- bw.flush();
- bw.close();
- } catch (IOException e1) {
- throw new RuntimeException();
- }
- }
- public static void main(String[] args) {
- new Calculator();
- }
- }
运行截图
记事本
来源: http://www.bubuko.com/infodetail-3299621.html