java setmnemonic_JAVA 运用流编程实现简单的"记事本"功能

1 /**

2 * 我的记事本(界面+功能)3 */

4 packagecom.test3;5

6 import javax.swing.*;7 import java.awt.event.*;8 importjava.io.BufferedReader;9 importjava.io.BufferedWriter;10 importjava.io.FileReader;11 importjava.io.FileWriter;12

13 public class NotePad extends JFrame implementsActionListener {14 //定义需要的组件

15 JTextArea jta = null;16

17 //菜单条

18 JMenuBar jmb = null;19

20 //定义JMenu(菜单栏按钮)

21 JMenu jml = null;22

23 //定义JMenuItem(功能按钮)

24 JMenuItem jmi1 = null;25 JMenuItem jmi2 = null;26 JMenuItem jmi3 = null;27

28 public static voidmain(String[] args) {29 NotePad notePad = newNotePad();30 }31

32 //构造函数

33 publicNotePad() {34 //创建jta

35 jta = newJTextArea();36 jmb = newJMenuBar();37 jml = new JMenu("菜单(M)");38 //设置助记符

39 jml.setMnemonic('M');40

41 //打开按钮

42 jmi1 = new JMenuItem("打开", new ImageIcon("edit.gif"));43 //添加图标的第二种方法44 //ImageIcon ic = new ImageIcon("edit.gif");45 //jmi1.setIcon(ic);46 //保存按钮

47 jmi2 = new JMenuItem("保存");48 //退出按钮

49 jmi3 = new JMenuItem("退出");50

51 Listen();52

53 //放入控件

54 this.setJMenuBar(jmb);55 //把JMenu放入到JMenuBar

56 jmb.add(jml);57 //把item放入到Menu中去

58 jml.add(jmi1);59 jml.add(jmi2);60 jml.add(jmi3);61

62 //放入到JFrame里

63 this.add(jta);64 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);65 this.setSize(400, 300);66 this.setVisible(true);67 }68

69 //监听事件

70 public voidListen()71 {72 //进行注册监听73 //打开

74 jmi1.addActionListener(this);75 jmi1.setActionCommand("open");76 //保存

77 jmi2.addActionListener(this);78 jmi2.setActionCommand("save");79 //退出

80 jmi3.addActionListener(this);81 jmi3.setActionCommand("quit");82 }83

84 @Override85 public voidactionPerformed(ActionEvent e) {86 //判断触发了哪个功能按钮87 //打开

88 if (e.getActionCommand().equals("open")) {89 //JFileChooser文件选择组件

90 JFileChooser jfc1 = newJFileChooser();91 //设置名字

92 jfc1.setDialogTitle("请选择文件...");93

94 jfc1.showOpenDialog(null);95 //显示

96 jfc1.setVisible(true);97

98 String file = null;99 try{100 //得到用户选择的文件绝对(全)路径

101 file =jfc1.getSelectedFile().getAbsolutePath();102

103 //System.out.println(filename);

104 FileReader fr = null;105 BufferedReader br = null;106 try{107 fr = newFileReader(file);108 br = newBufferedReader(fr);109 //从文件中读取信息并显示到jta

110 String s = "";111 String allCon = "";112 while ((s = br.readLine()) != null) {113 allCon += s + "rn";114 }115

116 //放置到jta即可

117 jta.setText(allCon);118

119 } catch(Exception ex) {120 ex.printStackTrace();121 } finally{122 try{123 if (br != null && fr != null) {124 br.close();125 fr.close();126 }127 } catch(Exception ex) {128 ex.printStackTrace();129 }130 }131 } catch(Exception ex) {132 System.out.println("未选中文件");133 //ex.printStackTrace();

134 }135 }136 //保存

137 else if (e.getActionCommand().equals("save")) {138 //出现保存对话框

139 JFileChooser jfc = newJFileChooser();140 jfc.setDialogTitle("另存为...");141 //按默认的方式显示

142 jfc.showSaveDialog(null);143 jfc.setVisible(true);144

145 String file = null;146 try{147 //得到用户希望把文件保存到的地址(文件绝对路径)

148 file =jfc.getSelectedFile().getAbsolutePath();149

150 //写入到指定文件

151 FileWriter fw = null;152 BufferedWriter bw = null;153 try{154 fw = newFileWriter(file);155 bw = newBufferedWriter(fw);156

157 bw.write(this.jta.getText());158 } catch(Exception ex) {159 ex.printStackTrace();160 } finally{161 try{162 //bw和fw的关闭顺序不能写反,否则会报错

163 if (bw != null && fw != null) {164 bw.close();165 fw.close();166 }167 } catch(Exception ex) {168 ex.printStackTrace();169 }170 }171 } catch(Exception ex) {172 System.out.println("未选中文件");173 //ex.printStackTrace();174 //System.out.println(ex.getMessage());

175 }176 }177 //退出

178 else if (e.getActionCommand().equals("quit")) {179 System.exit(0);180 }181 }182 }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值