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程 ...
随机推荐
- kettle Spoon.bat闪退解决办法
1.Java环境配置问题 java_home:D:\Program Files\Java\jdk1.7.0_25(安装jdk路径) classpath:.;%java_home%\lib\dt.jar ...
- shell常用分隔符及管道的用法
1.命令1;命令2;命令3;.... 代码顺序执行 2.&&连接两条命令:命令1&&命令2&&命令3... 短路执行 3.||连接两条命令:命令1||命 ...
- 微信小程序开发(三)点击事件
接着上篇博客继续. 如下修改: // index.wxml <view>Hello World!</view> <button bindtap="but&quo ...
- jQuery获取表单全部数据
iQuery如何获取表单的全部数据,用于ajax提交 var formData = {}; var t = $('#Form').serializeArray(); $.each(t, functio ...
- 代码检查工具sonarqube介绍
SonarQube 是一款用于代码质量管理的开源工具,它主要用于管理源代码的质量.通过插件形式,可以支持众多计算机语言. 比如 java, C#, go,C/C++, PL/SQL,Cobol,Jav ...
- error LNK2019 : unresolved external symbol Zbar配置问题
原文链接:https://blog.csdn.net/MengchiCMC/article/details/77871714 出现error LNK2019 : unresolved external ...
- ASP.netMVC验证码
.复制下列代码,拷贝到控制器中. #region 生成验证码图片 // [OutputCache(Location = OutputCacheLocation.None, Duration = 0, ...
- uboot驱动模型(DM)分析(二) (转)
上篇分析了两个关键宏U_BOOT_DRIVER及U_BOOT_DEVICES的作用,有了上篇的基础,本文将分析: 1.上篇中的uboot_list段中的信息如何被用起来? 2.uclass,uclas ...
- calc() 函数
定义与用法 calc() 函数用于动态计算长度值. 需要注意的是,运算符前后都需要保留一个空格,例如:width: calc(100% - 10px): 任何长度值都可以使用calc()函数进行计 ...
- hadoop中的JournalNode
1.在HADOOP扮演的角色 JournalNode是在MR2也就是Yarn中新加的,journalNode的作用是存放EditLog的, 在MR1中editlog是和fsimage存放在一起的然后S ...