当前位置: 首页 > news >正文

记事本程序

/**
 * 记事本程序
 */
package com.test7;
import java.awt.*;
import java.io.*;
import java.awt.event.*;
import javax.swing.*;
public class NotePad extends JFrame implements ActionListener{

//定义所需要的组件
JTextArea jta=null;
//定义菜单条
JMenuBar jmb=null;
//第一个JMenu
JMenu jml=null;
//定义JMenuIteam
JMenuItem jmi1=null;
JMenuItem jmi2=null;
public static void main(String[] args) {
// TODO Auto-generated method stub
NotePad np=new NotePad();
}
//构造函数
public NotePad()
{
//创建jta文本域
jta=new JTextArea();
jmb=new JMenuBar();
jml=new JMenu("文件(0)");
//设置助记符
jml.setMnemonic('F');
jmi1=new JMenuItem("打开");
jmi2=new JMenuItem("保存");
//对保存按钮做监听
jmi2.addActionListener(this);
jmi2.setActionCommand("save");
//对打开按钮注册监听
jmi1.addActionListener(this);
jmi1.setActionCommand("open");
//加入
this.setJMenuBar(jmb);
//把jml放入到jmb
jmb.add(jml);
//把item放入到Menu
jml.add(jmi1);
jml.add(jmi2);
//放入到JFreme
this.add(jta);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(400, 300);
this.setVisible(true);
}
//
public void actionPerformed(ActionEvent arg0) {
if(arg0.getActionCommand().equals("save"))
{
//出现保存对话框
JFileChooser jfc=new JFileChooser();
jfc.setDialogTitle("另存为....");
//按照默认的方式显示
jfc.showSaveDialog(null);
jfc.setVisible(true);
//用户希望把文件保存到何处,文件的全路径
String file=jfc.getSelectedFile().getAbsolutePath();
//准备写入到指定文件
FileWriter fw=null;
BufferedWriter bw=null;
try {
fw=new FileWriter(file);
bw=new BufferedWriter(fw);
bw.write(this.jta.getText());
} catch (Exception e) {
// TODO: handle exception
}
finally
{
try {
bw.close();
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
// TODO Auto-generated method stub
 
else if (arg0.getActionCommand().equals("open"));
{
//System.out.println("选中的是打开");
//推荐JFileChooser
//文件选择组
JFileChooser jfc1=new JFileChooser();
//默认的选中框组件
jfc1.showOpenDialog(null);
//显示选中框组件, 显示经典的选择窗口
jfc1.setVisible(true);
//得到用户选中的文件全路径
String filename=jfc1.getSelectedFile().getAbsolutePath();
//显示打开的文件
System.out.println(filename);
FileReader fr=null;
BufferedReader br=null;
try {
fr=new FileReader(filename);
br=new BufferedReader(fr);
//从文件中读取信息并显示jta
String s="";
String allCon="";
while((s=br.readLine())!=null)
{
allCon+=s+"\r\n";
}
jta.setText(allCon);
//放置到jta即可
jta.setText(allCon);
} catch (Exception e) {
// TODO: handle exception
}finally{
try {
br.close();
fr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}


转载于:https://www.cnblogs.com/toge/p/6114730.html

相关文章:

  • Java基础-Java中的Calendar和Date类
  • [转载]敏捷开发之Scrum扫盲篇
  • linux中权限的修改
  • Spring, MyBatis 多数据源的配置和管理
  • Vue 新手学习实战宝典
  • 初探插头dp
  • OSChina 周六乱弹 ——你们怎么懂我的少年心
  • Oracle内建函数(greatest, least, to_single_byte)
  • Selenium2+python自动化11-定位一组元素find_elements
  • Chapter 2 Open Book——24
  • 如何造一个移动端的联动选择器(二)
  • JFinal输出流的Render
  • 剑指offer五:
  • Android开发环境
  • 移动端解决方案学习记录
  • 【知识碎片】第三方登录弹窗效果
  • Android Studio:GIT提交项目到远程仓库
  • css布局,左右固定中间自适应实现
  • echarts花样作死的坑
  • express + mock 让前后台并行开发
  • js递归,无限分级树形折叠菜单
  • Shadow DOM 内部构造及如何构建独立组件
  • Spring Boot MyBatis配置多种数据库
  • ubuntu 下nginx安装 并支持https协议
  • 编写符合Python风格的对象
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 初探 Vue 生命周期和钩子函数
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 深入浅出webpack学习(1)--核心概念
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 栈实现走出迷宫(C++)
  • ​第20课 在Android Native开发中加入新的C++类
  • ​香农与信息论三大定律
  • ​一些不规范的GTID使用场景
  • #pragma data_seg 共享数据区(转)
  • #WEB前端(HTML属性)
  • $ git push -u origin master 推送到远程库出错
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (C++20) consteval立即函数
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (转)h264中avc和flv数据的解析
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .NET Core 版本不支持的问题
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .net中生成excel后调整宽度
  • .pyc文件是什么?
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • @RequestBody与@ModelAttribute
  • [ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
  • [Android View] 可绘制形状 (Shape Xml)