2019JAVA第十一次实验报告
Java实验报告
班级 计科二班 学号 20188442 姓名 吴怡君
完成时间 2019.11.22
评分等级
简易记事本
实验代码
package Domon10;
import java.awt.event.*;
import java.io.File;
import java.io.OutputStream;
import java.io.PrintStream;
import javax.swing.*;
import java.io.*;
import java.util.Scanner;
class Notepad implements ActionListener {
JFrame frame = new JFrame("welcome to MLDN") ; //定义窗体
JTextArea text = new JTextArea(); //定义文本域
JMenu menuFile = new JMenu("文件");//定义JMenu组件
JMenuItem newItem;
JMenuItem openItem ;
JMenuItem saveItem ;
JMenuItem closeItem;
JMenuItem exitItem;
public Notepad(){
text.setEditable(true); //定义文本组件可以编辑
frame.getContentPane().add(new JScrollPane(text));//在面板中加入文本框以及滚动条
menuFile.setIcon(new ImageIcon("C:"+File.separator+"Users"+File.separator+"35583"+File.separator+
"Pictures"+File.separator+"file.jpg"));//定义显示图标
JMenuBar menuBar = new JMenuBar(); //定义JMenuBar
newItem = new JMenuItem("新建",new ImageIcon("C:"+File.separator+"Users"+File.separator+"35583"+File.separator+
"Pictures"+File.separator+"new.jpg"));
openItem = new JMenuItem("打开",new ImageIcon("C:"+File.separator+"Users"+File.separator+"35583"+File.separator+
"Pictures"+File.separator+"open.jpg"));
saveItem = new JMenuItem("保存",new ImageIcon("C:"+File.separator+"Users"+File.separator+"35583"+File.separator+
"Pictures"+File.separator+"save.jpg"));
closeItem = new JMenuItem("关闭",new ImageIcon("C:"+File.separator+"Users"+File.separator+"35583"+File.separator+
"Pictures"+File.separator+"close.jpg"));
exitItem = new JMenuItem("退出",new ImageIcon("C:"+File.separator+"Users"+File.separator+"35583"+File.separator+
"Pictures"+File.separator+"exit.jpg"));
newItem.setMnemonic('N');//设置快捷键
openItem.setMnemonic('O');
closeItem.setMnemonic('C');
exitItem.setMnemonic('E');
saveItem.setMnemonic('S');
newItem.setAccelerator(KeyStroke.getKeyStroke('N',java.awt.Event.CTRL_MASK));//Ctrl+N
openItem.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK));
closeItem.setAccelerator(KeyStroke.getKeyStroke('C',java.awt.Event.CTRL_MASK));
exitItem.setAccelerator(KeyStroke.getKeyStroke('E',java.awt.Event.CTRL_MASK));
saveItem.setAccelerator(KeyStroke.getKeyStroke('S',java.awt.Event.CTRL_MASK));
menuFile.add(newItem); //加入菜单项
menuFile.add(openItem);
menuFile.add(saveItem);
menuFile.add(closeItem);
menuFile.addSeparator(); //加入分隔线
menuFile.add(exitItem);
menuBar.add(menuFile);
frame.addWindowListener(new WindowAdapter(){ //加入监听事件
public void windowClosing(WindowEvent arg0){ //复写窗口关闭方法
System.exit(1);
}
});
openItem.addActionListener(this);
saveItem.addActionListener(this);
frame.setJMenuBar(menuBar);
frame.setSize(400, 300);
frame.setVisible(true);
frame.setLocation(300,200);
}
@Override
public void actionPerformed(ActionEvent e) { //按钮事件监听
File file = null; //接受打开文件
int result = 0; //接受操作结果
if(e.getSource()==openItem){ //判断是否是open按钮
JFileChooser fileChooser = new JFileChooser();//实例化文件选择框
text.setText(""); //清空文中的原有内容
fileChooser.setApproveButtonText("确定"); //定义确定按钮信息
fileChooser.setDialogTitle("打开文件");//设置文件选择框标题
result = fileChooser.showOpenDialog(frame);//显示打开对话框
if(result==JFileChooser.APPROVE_OPTION){ //表示选择了确定按钮
file = fileChooser.getSelectedFile();//得到选择的File对象
setText("打开的文件名称为:"+file.getName());
}else if(result == JFileChooser.CANCEL_OPTION){
setText("没有选择任何 文件");
}else{//result == JFileChooser.ERROR_OPTION
setText("操作出现错误");
}
if(file!=null){
try{
Scanner scan = new Scanner(
new FileInputStream(file));
scan.useDelimiter("\n");
while(scan.hasNext()){
text.append(scan.next()); //读取内容到文本区
text.append("\n");
}
scan.close();
}catch(Exception ex){
setText("文件读取出错");
}
}
}
if(e.getSource()==saveItem){ //判断是否是open按钮
JFileChooser fileChooser = new JFileChooser();//实例化文件选择框
text.setText(""); //清空文中的原有内容
fileChooser.setApproveButtonText("确定"); //定义确定按钮信息
fileChooser.setDialogTitle("打开文件");//设置文件选择框标题
result = fileChooser.showOpenDialog(frame);//显示打开对话框
if(result==JFileChooser.APPROVE_OPTION){ //表示选择了确定按钮
file = fileChooser.getSelectedFile();//得到选择的File对象
setText("选择的存储的文件名称为:"+file.getName());
}else if(result == JFileChooser.CANCEL_OPTION){
setText("没有选择任何 文件");
}else{//result == JFileChooser.ERROR_OPTION
setText("操作出现错误");
}
if(file!=null){
try{
PrintStream out = new PrintStream(
new FileOutputStream(file));
out.print(text.getText());
out.close();
}catch(Exception ex){
setText("文件读取出错");
}
}
}
}
private void setText(String string) {
}
}
package Domon10;
public class test {
public static void main(String[] args) {
new Notepad();
}
}
实验结果截图
小题总结
对于这周的作业,本来是要做一个记事本的,但是如果想把Windons下的记事本的一些功能全部实现,没有个一周是很难完成的,我的两个室友就是写了一周多了,现在还在继续修改,是真的很棒,他们对自己要求很高,一直在精化,他们每个人的代码差不多有800多行了,有点强,我的话就做简单点吧,其实要完成还需要花很多时间,所以我只在文件里面实现了两个简单的功能,那就是打开和保存这两个事件处理,当然如果要实现其他的三个,一葫芦画瓢都差不多,其它的菜单有机会就去实现,因为现在要搞程序设计了。总体来说还是有点挑战性的。
课程总结
这周学习了菜单组件,然后里面有很多类和一些方法,这些类可以帮助我们完成图形界面以及一些按钮键的处理,学习了这些东西感觉还是良好的,但是不够熟练,必须多练习多查资料才会学得更深。在目前来说,学习的东西越来越多,所以需要不断去接触一些新的东西来扩充自己,继续努力。
2019JAVA第十一次实验报告的更多相关文章
- 2019JAVA第七次实验报告
Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019.10.25 评分等级 实验任务详情: 完成火车站售票程序的模拟. 要求: (1)总票数1000张: (2)1 ...
- 2019JAVA第六次实验报告
Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019.10.18 评分等级 实验四 类的继承 实验目的 理解异常的基本概念: 掌握异常处理方法及熟悉常见异常的捕获 ...
- 2019JAVA第五次实验报告
Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间2019/10/11 评分等级 实验四 类的继承 实验目的 理解抽象类与接口的使用: 了解包的作用,掌握包的设计方法. ...
- 2019JAVA第四次实验报告
JAVA实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019/9/29 评分等级 实验四 类的继承 1.实验目的 掌握类的继承方法: 变量的继承和覆盖,方法的继承.重载和 ...
- 2019JAVA第三次实验报告
Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019.9.24 评分等级 实验三 String类的应用 一.实验目的 掌握类String类的使用: 学会使用JDK ...
- 2019JAVA第八次实验报告
班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019.11.1 评分等级 课程作业: 将奇数位小写字母改写为大写字母(用文件输出) 实验代码: package Domon7; im ...
- 2019JAVA第十次实验报告
Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019.11.15 评分等级 实验代码 package Domon9; import java.awt.Font; ...
- 2019JAVA第九次实验报告
Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019.11.8 评分等级 课程总结 1.实验代码 package Domon8; import java.awt. ...
- 2019JAVA第二次实验报告
Java实验报告 班级 计算机科学与技术二班 学号 20188442 姓名 吴怡君 完成时间 2019/9/19 评分等级 实验二 Java简单类与对象 实验目的 掌握类的定义,熟悉属性.构造函数.方 ...
随机推荐
- Flink SQL 如何实现数据流的 Join?
无论在 OLAP 还是 OLTP 领域,Join 都是业务常会涉及到且优化规则比较复杂的 SQL 语句.对于离线计算而言,经过数据库领域多年的积累,Join 语义以及实现已经十分成熟,然而对于近年来刚 ...
- json的概念,语法规则,数组,物件结构
主要说一些关于json的简单应用 ㈠概念 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式. 它基于 ECMAScript (欧洲计算机协 ...
- C++ list用法总结
头文件 #include<list> 声明一个int型的list:list a: 1.list的构造函数 list<int>a{1,2,3} list<int>a( ...
- java.lang.Integer.MAX_VALUE;这是什么意思?
这个是Integer类中的一个int类型的常量MAX_VALUE它代表int所能表示的最大值 0x7FFFFFFF 相对应的是Integer类中的另一个常量MIN_VALUE它代表int所能表示的最小 ...
- PyCharm将main.py解析成text文件的解决方法
问题:PyCharm将main.py解释成文本文件,没有代码提示,也无法执行 解决方法:File->Settings->Editor->File Types ->选则Text ...
- linux工作常用命令
修改文件后缀 如 将文件application.properties.sample改为application.properties,格式 mv 文件名称.{改前后缀,修改后的目标后缀} 定位到修改文 ...
- img控件的居中显示 ---js技术
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- legend3---laravel中获取控制器名称和方法名称
legend3---laravel中获取控制器名称和方法名称 一.总结 一句话总结: \Route::current()->getActionName();会有完整的当前控制器名和方法名 pub ...
- EBS 显示主页面的工作列表和主菜单
EBS环境: R12.1.3 问题描述:如果系统的“个性化页”做了设置,可能出现登录系统后,如果下图红框中的 主菜单和工作列表没有显示的情况,如果需要重新显示“主菜单”和“工作列表”,可参考以下操作 ...
- 浏览器端-W3School-JavaScript:History 对象
ylbtech-浏览器端-W3School-JavaScript:History 对象 1.返回顶部 1. History 对象 History 对象 History 对象包含用户(在浏览器窗口中)访 ...