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记事本的图形用户界面应用程序含加密的更多相关文章

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

    JAVA记事本的图形用户界面应用程序 过滤 题目简介: 整体分析: 实验代码: package note; import java.awt.EventQueue; import java.awt.ev ...

  2. JAVA记事本的图形用户界面应用程序

    JAVA记事本的图形用户界面应用程序 整体分析: 代码实现: import java.awt.EventQueue; import java.awt.event.ActionEvent; import ...

  3. Java计算器的图形界面应用程序

      JAVA计算器的图形界面应用程序 题目简介: 整体分析: 实验代码: /*部分使用插件做界面*/ import java.awt.EventQueue; import javax.swing.JB ...

  4. JAVA 基础编程练习题48 【程序 48 加密】

    48 [程序 48 加密] 题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密 规则如下:每位数字都加上 5,然后用和除以 10 的余数代替该数字,再将第一位和第四位交 ...

  5. 《Java并发编程实战》第九章 图形用户界面应用程序界面 读书笔记

    一.为什么GUI是单线程化 传统的GUI应用程序通常都是单线程的. 1. 在代码的各个位置都须要调用poll方法来获得输入事件(这样的方式将给代码带来极大的混乱) 2. 通过一个"主事件循环 ...

  6. java 实验5 图形用户界面设计试验

    常用布局 1).流布局: FlowLayout 从左到右,自上而下方式在容器中排列,控件的大小不会随容器大小变化. 容器.setLayout(new FlowLayout(FlowLayout.LEF ...

  7. java 实验6 图形用户界面设计试验(2)

    共两大题 窗体实现(略去测试类即 实例化自定义窗体) 小结: 1. JRadioButton 单选按钮 ButtonGroup 按钮集合(加入单选按钮) 清空选项需让ButtonGroup调用clea ...

  8. 抽象窗口工具包AWT (Abstract Window Toolkit) 是 API为Java 程序提供的建立 图形用户界面

    抽象窗口工具包AWT (Abstract Window Toolkit) 是 API为Java 程序提供的建立 图形用户界面GUI (Graphics User Interface)工具集,AWT可用 ...

  9. AWT是Java基础类 (JFC)的一部分,为Java程序提供图形用户界面(GUI)的标准API

    抽象窗口工具包 (Abstract Windowing Toolkit) (AWT)是Java的平台独立的窗口系统,图形和用户界面器件工具包. AWT是Java基础类 (JFC)的一部分,为Java程 ...

随机推荐

  1. PHP的八种数据类型

    PHP 支持8种基本的数据类型. 四种标量类型: boolean (布尔型) integer (整型) float (浮点型, 也称作 double) string (字符串) 两种复合类型: arr ...

  2. 【转载】Attention Mechanism in Deep Learning

    本篇随笔为转载,原文地址:知乎,深度学习中Attention Mechanism详细介绍:原理.分类及应用.参考链接:深度学习中的注意力机制. Attention是一种用于提升基于RNN(LSTM或G ...

  3. zencart用sql将某个产品属性值设为只读和默认

    zencart用sql将某个产品属性值设为只读和默认 UPDATE `products_attributes` SET `attributes_display_only` = '1', `attrib ...

  4. Token认证的优势与劣势

    token 我们说的token,是指 访问资源的凭据 .使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录. 大致流程: 客户端使用用户名跟密码请求登录服务端收到请求,验证用户名与 ...

  5. pycharm 怎么能像在命令行中输入参数进行调试

    pycharm中配置main参数 Run->Edit Configurations->Script Parames 把需要在xxx.py A B C 后面的参数输入到如下位置. 否则会报错 ...

  6. Quartus 18 新手使用教程

    最近需要做个小作品,用到了Quartus 18,本人采用vhdl语言进行的开发,过程如下. 1.点击新建一个工程 ​ 2.选择工程保存的路径,填写工程名称 ​ 3.选择工程类型为空的工程 ​ 4.不添 ...

  7. js 原生ajax请求

    什么是ajax 所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject). XMLHttpRequest 用于在后台与服务器交换数据.这意味着可 ...

  8. typescript枚举字符串型不能使用函数问题

    数字型枚举 enum OrderStatus { Start = 1, Unpaid, Shipping, Shipped, Complete } 或者 enum OrderStatus { Star ...

  9. C# List分组

    //分组 8个为一组 List<List<string>> ArrayList = sArray.Select((x, i) => new { Index = i, Va ...

  10. 基于python的爬虫项目

    一.项目简介 1.1 项目博客地址 https://www.cnblogs.com/xsfa/p/12083913.html 1.2 项目完成的功能与特色 爬虫和拥有三个可视化数据分析 1.3 项目采 ...