【JAVA】简易记事本NotePad
2016-06-24 15:12
435 查看
package com.notepad; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import javax.swing.ImageIcon; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JTextArea; public class NotePad extends JFrame implements ActionListener { // 定义个所需要的组件 JTextArea jta = null; // 菜单条 JMenuBar jmb = null; // 第一个JMenu JMenu jm1 = null; // 定义JMenuItem JMenuItem jmi1 = null; JMenuItem jmi2 = null; public static void main(String[] args) { // TODO Auto-generated method stub NotePad np = new NotePad(); } // 构造函数 public NotePad() { // 创建jta jta = new JTextArea(); jmb = new JMenuBar(); jm1 = new JMenu("文件"); jm1.setMnemonic('F'); // jmi1 = new JMenuItem("打开", new ImageIcon(getClass().getResource("open.png"))); jmi1 = new JMenuItem("打开", new ImageIcon("open.png")); // 注册监听 jmi1.addActionListener(this); jmi1.setActionCommand("open"); jmi2 = new JMenuItem("保存", new ImageIcon("save.png")); // 注册监听 jmi2.addActionListener(this); jmi2.setActionCommand("save"); this.setJMenuBar(jmb); // 把JM1放入到jmb jmb.add(jm1); // 把Item 放到menu jm1.add(jmi1); jm1.add(jmi2); // 放入到JFrame this.add(jta); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(400, 300); this.setVisible(true); } @Override public void actionPerformed(ActionEvent arg0) { if (arg0.getActionCommand().equals("open")) { // JFileChooser 文件选择组件 JFileChooser jfc1 = new JFileChooser(); // 设置名字 jfc1.setDialogTitle("请选择文件。。。"); // 默认方式 jfc1.showOpenDialog(null); // 显示 jfc1.setVisible(true); // 得到用户选择的文件路径 String filename = jfc1.getSelectedFile().getAbsolutePath(); FileReader fr = null; BufferedReader br = null; try { fr = new FileReader(filename); br = new BufferedReader(fr); // 从文件中读取信息并显示 String s = ""; String allCon = ""; while ((s = br.readLine()) != null) { allCon += s + "\r\n"; } jta.setText(allCon); } catch (Exception e) { e.printStackTrace(); } finally { try { br.close(); fr.close(); } catch (Exception e2) { e2.printStackTrace(); } } } else if (arg0.getActionCommand().equals("save")) { //出现保存对话框 JFileChooser jfc = new JFileChooser(); jfc.setDialogTitle("另存为。。。"); jfc.showOpenDialog(null); jfc.setVisible(true); String file = jfc.getSelectedFile().getAbsolutePath(); //准备吸入指定文件 FileWriter fw = null; BufferedWriter bw = null; try { fw = new FileWriter(file); bw = new BufferedWriter(fw); //need 优化 bw.write(this.jta.getText()); } catch (Exception e) { e.printStackTrace(); }finally { try { fw.close(); bw.close(); } catch (Exception e2) { e2.printStackTrace(); } } } } }
视频分享,点击前复制密码。访问密码 d695
相关文章推荐
- Java实验(12) 异常捕捉
- 使用WebMagic爬虫框架爬取暴走漫画
- 查询时动态检索springmvc + mabatis
- Java实验(13) 正八边形类
- Java实验(11) 网页分析
- Java实验(10) 删除重复数字
- Java实验(9) 三角形类
- Java实验(8) Location类
- HDU 1042 N!(Java大数求阶乘)
- Java NIO Overview
- Java实验(7) 2*2线性方程组
- hadoop2.5.1与hbase1.2.1才是搭档其中要用jdk1.7
- Java实验(6) 二次方程类
- Java实现MD5加密解密类(转)
- Java基础集合之Map的迭代的两种方式
- Java实验(5) 最大子方阵
- Java Socket简单例子、readLine()、readUTF()
- MyEclipse打包带源码的jar包 以及解决jar中文乱码问题
- 2016.6.24笔记(2)-第一个Action
- Spring <context:annotation-config> 和 <context:component-scan>区别