JAVA记事本的图形用户界面应用程序 过滤

题目简介:

整体分析:

实验代码:

package note;

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
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 javax.swing.JFrame;
import java.awt.BorderLayout;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JSeparator;
import javax.swing.JTextArea;
import java.awt.Font; /**记事本的图形用户界面应用程序 过滤
* @author 李祖林
*2017-6-23
*/
public class Note3 implements ActionListener{ private JFrame frame;
JMenuItem New,Open,Save,Close;
JTextArea textArea;
File fileName = new File("D://file.txt"); public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Note3 window = new Note3();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
} public Note3() { frame = new JFrame();
frame.setBounds(100, 100, 725, 392);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new BorderLayout(0, 0)); textArea = new JTextArea();
textArea.setFont(new Font("华文中宋", Font.BOLD, 17));
frame.getContentPane().add(textArea, BorderLayout.CENTER); JMenuBar menuBar = new JMenuBar();
frame.setJMenuBar(menuBar); JMenu menu = new JMenu("\u6587\u4EF6");
menuBar.add(menu); New = new JMenuItem("\u65B0\u5EFA");
menu.add(New);New.addActionListener(this); Open = new JMenuItem("\u6253\u5F00");
menu.add(Open);Open.addActionListener(this); Save = new JMenuItem("\u4FDD\u5B58");
menu.add(Save);Save.addActionListener(this); JSeparator separator = new JSeparator();
menu.add(separator); Close = new JMenuItem("\u9000\u51FA");
menu.add(Close);Close.addActionListener(this); JMenu menu_1 = new JMenu("\u7F16\u8F91");
menuBar.add(menu_1); JMenuItem menuItem_4 = new JMenuItem("\u590D\u5236");
menu_1.add(menuItem_4); JMenuItem menuItem_5 = new JMenuItem("\u526A\u5207");
menu_1.add(menuItem_5); JMenuItem menuItem_6 = new JMenuItem("\u7C98\u8D34");
menu_1.add(menuItem_6);
} public void actionPerformed(ActionEvent e) {
if (e.getSource() == Close) {
System.exit(0);
} else if (e.getSource() == New) {
textArea.setText("");
} else if (e.getSource() == Save) {
saveFile();
} else if (e.getSource() == Open) {
textArea.setText("");
openFile();
} } public void saveFile(){
try {
BufferedWriter bWriter = new BufferedWriter(new FileWriter(fileName));
//打开写入流
String text = textArea.getText(); //获取文本框内容
char[] ch = new char[1024]; //字符串->>字符数组
ch = text.toCharArray();
int tmp;
for(int i = 0;i < ch.length;i++){
tmp = (int)ch[i]; //字符->ASCII值
if(tmp>='A'&&tmp<='Z'){ //过滤
tmp += 32;
}
ch[i] = (char)tmp; //ASCII值->字符
}
text = String.valueOf(ch); //字符数组->>字符串
bWriter.write(text); //写入
bWriter.close();
} catch (IOException e) {
System.err.println("保存文件发生错误!");
e.printStackTrace(); //打印轨迹
}
} public void openFile(){
try {
BufferedReader bReader = new BufferedReader(new FileReader(fileName));
String text;
while((text = bReader.readLine())!=null){
textArea.append(text+"\n");
}
bReader.close();
} catch (IOException e) {
System.err.println("打开文件发生错误!");
e.printStackTrace();
}
} }

实验结果:

过滤前:

过滤后:

最新文章

  1. 特殊文件: /dev/null和/dev/tty
  2. [SQL入门级] 上篇被移出园子首页,那这篇咱就&#39;薄利多销&#39;
  3. c# 第一个实例 通哥
  4. PS色调均化滤镜的快捷实现(C#源代码)。
  5. ASP.NET中各种连接数据库的配置
  6. CABasicAnimation精讲
  7. 点击UserControl中的按钮将值传给winform页面
  8. VC菜菜鸟:建立第一个基于Visual C++的Windows窗口程序
  9. HDU_1406 完数
  10. Extjs之rowEditing编辑状态时列不对齐
  11. 在MVC中添加拦截器实现登录后的权限验证
  12. Regular expressions in lexing and parsing(翻译)
  13. Solr 新增、更新、删除索引
  14. SQL Server 锁详解
  15. 本机ip、127.0.0.1和0.0.0.0区别及内环流量
  16. Windows 环境下 wampserver 与 phpStudy 的环境配置
  17. Nginx服务器的图片防盗链
  18. TextView设置文字包含中英文时自动换行问题的终极解决方案
  19. #优化:Nginx防御DDOS和CC攻击
  20. MAVLink v1.0详解——结构

热门文章

  1. Diagonal Walking v.2 CodeForces - 1036B (思维,贪心)
  2. Hdu 1525 欧几里得博弈
  3. 分布式 一致性Paxos算法(转载)
  4. Zabbix Server安装指南
  5. sysbench运行autogen.sh报错
  6. Java程序中使用 Jsoup 爬虫( 简单示例 )
  7. Python模拟浏览器多窗口切换
  8. Linux系统挂载存储只读改成读写
  9. 什么是URL百分号编码?
  10. B/S文件夹上传下载组件