返回顶部

收藏

简易的记事本

更多
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Notebook extends JFrame{
    JTextArea jta=null;
    JScrollPane jsp=null;
    JMenuBar jbr=null;
    JMenu jm1,jm2;
    JMenuItem jmi2,jmi3,jmi4;
    public static void main(String[] args) {
        Notebook nb=new Notebook();
    }

    public Notebook()
    {
        jta=new JTextArea();
        jsp=new JScrollPane(jta);

        jmi2=new JMenuItem("打开");
        jmi2.setActionCommand("打开");
        jmi2.addActionListener(new Mylistener());

        jmi3=new JMenuItem("保存");
        jmi3.setActionCommand("保存");
        jmi3.addActionListener(new Mylistener());

        jmi4=new JMenuItem("查看帮助");
        jmi4.setActionCommand("查看帮助");
        jmi4.addActionListener(new Mylistener());

        jm1=new JMenu("选项");
        jm1.add(jmi2);
        jm1.add(jmi3);
        jm2=new JMenu("帮助");
        jm2.add(jmi4);
        jbr=new JMenuBar();
        jbr.add(jm1);
        jbr.add(jm2);
        this.add(jsp);
        this.add(jbr,BorderLayout.NORTH);
        this.setTitle("记事本");
        this.setSize(600,500);
        this.setLocation(200,200);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    }
    class Mylistener implements ActionListener
    {
        InputStreamReader isr=null;
        BufferedReader bfd=null;
        BufferedWriter bfw=null;
        JFileChooser jfc=null;
        FileReader fd=null;
        File creatfile=null;
        FileWriter fw=null;

        public void actionPerformed(ActionEvent arg0) {

                if(arg0.getActionCommand().equals("打开")){
                jfc=new JFileChooser();
                jfc.setDialogTitle("请选择要打开的文件");
                jfc.showOpenDialog(null);
                jfc.setVisible(true);
                String filename=jfc.getSelectedFile().getAbsolutePath();

                try {
                    fd=new FileReader(filename);
                    bfd=new BufferedReader(fd);

                    String s="",allstring="";
                    while((s=bfd.readLine())!=null){
                        allstring+=s+"\\n";
                    }
                    jta.setText(allstring);
                } catch (Exception e) {
                    e.printStackTrace();
                }finally{
                    try {
                        fd.close();
                        bfd.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }

                }
            }else if(arg0.getActionCommand().equals("保存")){
                //很重要的一个组件JFileChooser
                jfc=new JFileChooser();
                jfc.setDialogTitle("请选择要保存的路径");
                jfc.showSaveDialog(null);
                jfc.setVisible(true);
                String savepath=jfc.getSelectedFile().getAbsolutePath();

                try {
                    fw=new FileWriter(savepath);
                    bfw=new BufferedWriter(fw);

                    String newfile=jta.getText();
                    bfw.write(newfile);

                } catch (Exception e) {
                    e.printStackTrace();
                }finally{
                    try {
                        bfw.close();
                        fw.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }

            }       }

    }
}
//该片段来自于http://outofmemory.cn

标签:java,图形

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. 博主 发表 2009-10-03 04:00:00 艰难的开垦java图形
  2. 考拉哥 发表 2015-01-22 15:26:26 GraphicsMagick使用练习
  3. daniel 发表 2013-08-12 16:02:13 Special Day 8.13
  4. prayer 发表 2013-05-02 11:33:51 Java核心技术读书笔记(2)——第4章对象与类
  5. sulong 发表 2007-11-14 03:00:52 用JoinColumn使用JPA的OneToMany不自动生成数据库表
  6. sulong 发表 2009-05-11 06:44:15 企业应用集成–引入ESB
  7. sulong 发表 2011-12-27 09:32:53 IP地址整形和点分十进制转换
  8. 博主 发表 2014-03-25 17:01:23 MSpider爬虫搜索
  9. 博主 发表 2014-12-26 07:26:05 [Android] Force route audio stream to wired headse
  10. 高彬 (noreply@blogger. 发表 2014-03-28 12:39:12 Jrebel 5.4.1 Upate
  11. kafka0102 发表 2010-08-21 07:43:19 HttpClient的“Going to buffer response body of large
  12. chirs <> 发表 2006-08-20 04:42:45 hibernate的配置

发表评论