JAVA记事本的图形用户界面应用程序含加密
JAVA记事本的图形用户界面应用程序 加密
题目简介:

整体分析:

实验代码:
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.JPanel;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JSeparator;
import javax.swing.JTextArea;
import javax.xml.transform.Templates; /**记事本的图形用户界面应用程序 加密
* @author 李祖林
*2017-6-22
*/
public class Note2 implements ActionListener{ private JFrame frame;
JMenuItem New,Open,Save,Close; //四个菜单栏
JTextArea textArea; //输入框
File flieName = new File("D://file.txt"); //默认文件路径 public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Note2 window = new Note2();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
} public Note2() { frame = new JFrame();
frame.setBounds(100, 100, 567, 350);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new BorderLayout(0, 0)); textArea = new JTextArea();
frame.getContentPane().add(textArea, BorderLayout.CENTER); JMenuBar menuBar = new JMenuBar();
frame.getContentPane().add(menuBar, BorderLayout.NORTH); 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);
} public void actionPerformed(ActionEvent e) {
if(e.getSource() == New){
textArea.setText("");
}else if(e.getSource() == Open){
textArea.setText("");
readFile();
}else if(e.getSource() == Save){
saveFile();
}else{
System.exit(0);
}
} /*解码的过程*/
public void readFile(){
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader(flieName));
String text; //每行字符串
char[] ch = new char[1024]; //字符数组
int tmp; //字符的ASCII码值
while((text = bufferedReader.readLine())!=null){
ch = text.toCharArray(); //字符串->字符数组 for(int i = 0;i < ch.length;i++){
tmp = (int)ch[i] - 30; //解密
if(tmp<0){
tmp += 127;
}
ch[i] = (char)tmp; //转化为字符
} text = String.valueOf(ch); //转化为字符串
textArea.append(text);
}
bufferedReader.close();
} catch (IOException e) {
System.err.println("读取文件发生错误!");
}
} /*加密的过程*/
public void saveFile(){
try {
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(flieName));
String string = textArea.getText(); //获取文本框内容
char[] ch = new char[1024]; //字符数组
int tmp; //字符的ASCII码值
ch = string.toCharArray(); //字符串->字符数组
for(int i = 0;i < string.length();i++){
tmp = (int)ch[i] + 30; //加密:ASCII+30(<=127)
if(tmp>127)
tmp -= 127;
ch[i] = (char)tmp;
}
string = String.valueOf(ch); //转化成字符串的两种方式
/*两种方式:string = ch.toString();*/
bufferedWriter.write(string); //写入
bufferedWriter.close();
} catch (IOException e) {
System.err.println("写入文件错误!");
}
} }
实验结果:
加密前:

加密后:

JAVA记事本的图形用户界面应用程序含加密的更多相关文章
- JAVA记事本的图形用户界面应用程序含过滤
JAVA记事本的图形用户界面应用程序 过滤 题目简介: 整体分析: 实验代码: package note; import java.awt.EventQueue; import java.awt.ev ...
- JAVA记事本的图形用户界面应用程序
JAVA记事本的图形用户界面应用程序 整体分析: 代码实现: import java.awt.EventQueue; import java.awt.event.ActionEvent; import ...
- Java计算器的图形界面应用程序
JAVA计算器的图形界面应用程序 题目简介: 整体分析: 实验代码: /*部分使用插件做界面*/ import java.awt.EventQueue; import javax.swing.JB ...
- JAVA 基础编程练习题48 【程序 48 加密】
48 [程序 48 加密] 题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密 规则如下:每位数字都加上 5,然后用和除以 10 的余数代替该数字,再将第一位和第四位交 ...
- 《Java并发编程实战》第九章 图形用户界面应用程序界面 读书笔记
一.为什么GUI是单线程化 传统的GUI应用程序通常都是单线程的. 1. 在代码的各个位置都须要调用poll方法来获得输入事件(这样的方式将给代码带来极大的混乱) 2. 通过一个"主事件循环 ...
- java 实验5 图形用户界面设计试验
常用布局 1).流布局: FlowLayout 从左到右,自上而下方式在容器中排列,控件的大小不会随容器大小变化. 容器.setLayout(new FlowLayout(FlowLayout.LEF ...
- java 实验6 图形用户界面设计试验(2)
共两大题 窗体实现(略去测试类即 实例化自定义窗体) 小结: 1. JRadioButton 单选按钮 ButtonGroup 按钮集合(加入单选按钮) 清空选项需让ButtonGroup调用clea ...
- 抽象窗口工具包AWT (Abstract Window Toolkit) 是 API为Java 程序提供的建立 图形用户界面
抽象窗口工具包AWT (Abstract Window Toolkit) 是 API为Java 程序提供的建立 图形用户界面GUI (Graphics User Interface)工具集,AWT可用 ...
- AWT是Java基础类 (JFC)的一部分,为Java程序提供图形用户界面(GUI)的标准API
抽象窗口工具包 (Abstract Windowing Toolkit) (AWT)是Java的平台独立的窗口系统,图形和用户界面器件工具包. AWT是Java基础类 (JFC)的一部分,为Java程 ...
随机推荐
- Linux基础知识之文件的权限(二)
除了基本的r,w,x之外,在linux传统的ext2.ext3.ext4文件系统下,还可以设置其他 的文件属性.如chattr,lsattr,而在CentOS7中默认利用xfs作为默认的文件系统,就不 ...
- zabbix 监控TCP状态连接数
1.zabbix客户端,监控TCP状态脚本,并保存到的定路径.(/usr/local/zabbix-agent/shells) # cat zabbix_linux_plugin.sh #!/bin/ ...
- C#在Oralce环境执行查询时报"Arithmetic operation resulted in an overflow"
问题描述:C#代码在Oralce环境执行分组求和的Sql时报错,提示“Arithmetic operation resulted in an overflow”,即算术运算导致溢出 (1).执行Sql ...
- unique() sstream
sstream ss()自动去除空格 例: string a="1 2 3 4 5; getline(cin,a); sstream ss(a); while(ss>>b) { ...
- Gym - 101955E The Kouga Ninja Scrolls (曼哈顿距离变换+线段树)
题意:有n个忍者(编号为1-n),每个忍者有三个属性:横坐标x,纵坐标y,所属门派c,要求支持三种操作: 1.改变第k个忍者的位置 2.改变第k个忍者的门派 3.查询编号为[l,r]之间的忍者中,所属 ...
- ESP8266烧录选项中的QIO 和 DIO解释
https://blog.csdn.net/recclay/article/details/78956580 看到的由烧录引起的QIO和DIO问题探索.. 所以一般选择DIO QIO -> Qu ...
- Java-ConfigHelper工具类
/** * 读取配置文件 */ import java.io.File; import java.net.URL; import org.apache.commons.configuration.Co ...
- 【WinForm-TreeView】实现Win7 Areo效果
效果图: 新建一个继承自TreeView的控件类,代码如下: using System; using System.Windows.Forms; using System.Drawing; using ...
- 与word、excel交互问题总结
不同版本的Office对应的型号不同,往往问题出现在注册表中有多个版本,所以程序运行经常提示错误. 1.找不到引用microsoft.office.core解决办法 (引用中有感叹号,说明引用不成功) ...
- hdu 5723 Abandoned country 最小生成树+子节点统计
Abandoned country Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...