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 javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JSeparator;
import javax.swing.JTextArea;
import java.awt.BorderLayout;
import java.awt.Font; /**记事本的图形用户界面应用程序
* @author 李祖林
* 2017-6-22
*/
public class Note1 implements ActionListener{ private JFrame frame;
JMenuItem New, Open, Save, Close; /*
* 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 {
Note1 window = new Note1();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
} public Note1() { frame = new JFrame();
frame.setFont(new Font("Dialog", Font.BOLD, 18));
frame.setBounds(100, 100, 629, 412);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JMenuBar menuBar = new JMenuBar();
frame.setJMenuBar(menuBar); JMenu menu = new JMenu("\u6587\u4EF6");
menu.setFont(new Font("黑体", Font.BOLD, 18));
menuBar.add(menu); New = new JMenuItem("\u65B0\u5EFA");
New.setFont(new Font("黑体", Font.BOLD, 18));
menu.add(New);New.addActionListener(this); Open = new JMenuItem("\u6253\u5F00");
Open.setFont(new Font("黑体", Font.BOLD, 18));
menu.add(Open);Open.addActionListener(this); Save = new JMenuItem("\u4FDD\u5B58");
Save.setFont(new Font("黑体", Font.BOLD, 18));
menu.add(Save);Save.addActionListener(this); JSeparator separator = new JSeparator();
menu.add(separator); Close = new JMenuItem("\u5173\u95ED");
Close.setFont(new Font("黑体", Font.BOLD, 18));
menu.add(Close);Close.addActionListener(this); JMenu menu_1 = new JMenu("\u7F16\u8F91");
menu_1.setFont(new Font("黑体", Font.BOLD, 18));
menuBar.add(menu_1); JMenuItem menuItem_4 = new JMenuItem("\u590D\u5236");
menu_1.add(menuItem_4); JMenuItem menuItem_5 = new JMenuItem("\u7C98\u8D34");
menu_1.add(menuItem_5); JMenuItem menuItem_6 = new JMenuItem("\u526A\u5207");
menu_1.add(menuItem_6); textArea = new JTextArea();
frame.getContentPane().add(textArea, BorderLayout.CENTER);
} public void actionPerformed(ActionEvent e) {
if(e.getSource()==Close){
System.exit(0);
}
else if (e.getSource()==Save) {
saveFile();
}else if (e.getSource()==Open){
readFile();
}else{
textArea.setText("");
} }
/*打开文件函数*/
public void readFile(){
try{
BufferedReader bufferedReader = new BufferedReader(new FileReader(fileName)); //缓存字符流
StringBuffer buffer = new StringBuffer();
String text;
while((text = bufferedReader.readLine()) != null){
// buffer.append(text+"\n");
textArea.append(text+"\n");
}
// textArea.setText(buffer.toString());
bufferedReader.close();
}catch (IOException e) {
System.err.println("读入文件发生错误!");
}
}
/*保存文件函数*/
public void saveFile(){
try{
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(fileName));
String string = textArea.getText();
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.ActionEven ...

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

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

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

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

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

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

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

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

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

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

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

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

  9. 黑马程序员——【Java基础】——GUI(图形用户界面)

    ---------- android培训.java培训.期待与您交流! ---------- 一.概述 1.GUI(GraphicalUser Interface):又称图形用户界面,是计算机用户与计 ...

随机推荐

  1. 记一次root用户在本地登录及SSH连接均遭遇permission denied的问题排查经过

    某日一位老师反映,机房的6号节点无法登录了.一开始以为是为节点防火墙配置IP白名单时忘记了加进去,但随后发现此节点并未进行白名单配置,密码也一直未有变更,于是在自己的电脑上连接,发现终端里很快显示出了 ...

  2. 天线basic

    1.实际应用时,按内置天线还是外置天线考虑. 内置时,净空区在 PCB 上所有层(all layer) 不能放置元件,走线和铺 GND  天线远离金属,至少要距离周围有较高的元器件 10 毫米以上: ...

  3. shell脚本基础和grep文本处理工具企业应用4

    文本处理工具:    egrep:        支持扩展的正则表达式实现类似于grep文本过滤功能:grep -E        egrep [OPTIONS] PATTERN [FILE...]  ...

  4. 生产者消费者问题--BlockingQueue

    # 代码: public class App { public static void main(String[] args) { BlockingQueue<Integer> queue ...

  5. Android基础相关面试问题-binder面试问题详解

    Linux内核的基础知识: 进程隔离/虚拟地址空间:在操作系统中为了保护某个进程互不干扰就设计了一个叫“进程隔离”的技术,防止进程A可以操作进程B的数据.而进程隔离技术用到了虚拟地址空间,进程A的虚拟 ...

  6. kotlin函数和函数式表达式

    这次的写法可能有些怪异,但是如果熟悉java8的Lambda表达式的话其实理解起来很顺其自然[参考博客:http://www.cnblogs.com/webor2006/p/7705130.html] ...

  7. bind(named)配置文件

    BIND是DNS协议的一种实现.BIND包含了一个DNS Server(服务名叫named),用来解析主机名到ip地址:一个解析库:一些辅助工具,还有一个安全目录工具,分别属于下面几个包: 下面是原配 ...

  8. 不使用C库函数(Sprintf)将void* 指针转换为十六进制字符串

    #include <stdio.h> #include <stdint.h> #include <stdlib.h> void hexDump(void *ptr, ...

  9. Django项目开发,XSS攻击,图片防盗链,图片验证码,kindeditor编辑器

    目录 一.Django项目开发 1. 项目开发流程 2. auth模块的补充 (1)django的admin可视化管理页面 (2)将admin可视化管理页面的模型表显示成中文 (3)auth模块的用户 ...

  10. thinkjs 安装笔记

    1.首先安装thinkjsnpm install -g thinkjs(-g是指全局安装)检查是否安装成功:thinkjs -v 2.创建项目进入项目目录,初始化项目:thinkjs new proj ...