编写一个记事本程序_要求:_用图形用户界面实现。_能实现编辑、保存、另存为、查找替换等功能。

合集下载

JAVA简单记事本程序(源代码)课程设计

JAVA简单记事本程序(源代码)课程设计

辽宁工业大学JA V A程序设计课程设计(论文)题目: JAVA简单记事本程序院(系):软件学院专业班级:软件工程班学号:学生姓名:指导教师:教师职称:起止时间:程序设计专题(报告)任务及评语目录第1章课程设计的目的与要求 (4)1.1 课程设计目的 (4)1.2 课程设计的实验环境 (4)1.3 课程设计的预备知识 (4)1.4 课程设计要求 (4)第2章课程设计内容 (5)2.1课题描述 (5)2.2 系统设计 (5)2.2.1功能分析 (5)2.2.2面向对象设计 (5)2.2.3详细设计 (7)2.3程序实现 (10)2.3.1源码分析 (10)2.3.1运行结果 (14)第3章总结 (18)参考文献19第1章课程设计的目的与要求1.1 课程设计目的《JA V A程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。

实践教学环节是必不可少的一个重要环节。

本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JA V A程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

1.2 课程设计的实验环境硬件要求能运行Windows 9.X操作系统的微机系统。

JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。

1.3 课程设计的预备知识熟悉JAVA语言及ECLIPSE开发工具。

1.4 课程设计要求按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。

要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JA V A程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。

java课程设计报告记事本

java课程设计报告记事本

Java课程设计报告:记事本1. 引言记事本是一款常见的文本编辑工具,广泛应用于日常工作和学习中。

本文将介绍一种基于Java语言开发的简易记事本设计方案。

2. 设计思路2.1 界面设计记事本的界面应简洁明了,方便用户进行文本编辑和操作。

可以考虑使用Swing或JavaFX等图形库来创建用户界面。

2.1.1 主窗体记事本的主窗体应包含一个菜单栏和一个文本编辑区域。

菜单栏包含文件、编辑、格式等功能项,可以使用Java提供的菜单组件来实现。

2.1.2 文件操作在菜单栏的文件功能项中,应包含新建、打开、保存、另存为等操作。

这些功能可以通过文件选择对话框来实现。

2.1.3 文本编辑文本编辑区域应支持基本的编辑功能,如复制、粘贴、剪切和撤销等操作。

可以使用Java提供的文本框组件来实现。

2.2 功能设计记事本的功能设计应满足用户的基本需求,如文本编辑、保存和打开文件等。

2.2.1 文本编辑功能用户可以在文本编辑区域输入和编辑文本内容。

可以提供字体、颜色和对齐等格式设置功能。

2.2.2 文件操作功能用户可以通过菜单栏的文件功能项进行文件的新建、打开、保存和另存为等操作。

可以使用Java的文件IO功能来实现。

2.3 实现步骤2.3.1 创建主窗体首先,需要创建一个主窗体,并设置合适的大小和布局。

可以使用Swing或JavaFX提供的窗体组件来实现。

2.3.2 添加菜单栏在主窗体中添加一个菜单栏,并设置合适的菜单和菜单项。

可以使用Java提供的菜单和菜单项组件来实现。

2.3.3 添加文件操作功能在菜单栏的文件功能项中添加新建、打开、保存和另存为等功能,并实现相应的事件处理。

可以使用Java提供的文件选择对话框和文件IO功能来实现。

2.3.4 添加文本编辑功能在主窗体中添加一个文本编辑区域,并提供复制、粘贴、剪切和撤销等编辑功能。

可以使用Java提供的文本框组件和编辑功能来实现。

3. 实现代码以下是一个简单记事本的Java代码示例:import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.*;public class Notepad extends JFrame {private JTextArea textArea;private JFileChooser fileChooser;public Notepad() {setTitle("记事本");setSize(600, 400);setDefaultCloseOperation(EXIT_ON_CLOSE);createMenuBar();textArea = new JTextArea();JScrollPane scrollPane = new JScrollPane(textArea);add(scrollPane, BorderLayout.CENTER);fileChooser = new JFileChooser();setVisible(true);}private void createMenuBar() {JMenuBar menuBar = new JMenuBar();JMenu fileMenu = new JMenu("文件");JMenuItem newMenuItem = new JMenuItem("新建");JMenuItem openMenuItem = new JMenuItem("打开");JMenuItem saveMenuItem = new JMenuItem("保存");JMenuItem saveAsMenuItem = new JMenuItem("另存为");newMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {textArea.setText("");}});openMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {int result = fileChooser.showOpenDialog(Notepad.this);if (result == JFileChooser.APPROVE_OPTION) {File file = fileChooser.getSelectedFile();try {BufferedReader reader = new BufferedReader(new FileReader(file));String line;StringBuilder content = new StringBuilder();while ((line = reader.readLine()) != null) { content.append(line).append("\n");}reader.close();textArea.setText(content.toString());} catch (IOException ex) {ex.printStackTrace();}}}});saveMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {int result = fileChooser.showSaveDialog(Notepad.this);if (result == JFileChooser.APPROVE_OPTION) {File file = fileChooser.getSelectedFile();try {BufferedWriter writer = new BufferedWriter(new FileWriter(file));writer.write(textArea.getText());writer.close();} catch (IOException ex) {ex.printStackTrace();}}}});saveAsMenuItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {int result = fileChooser.showSaveDialog(Notepad.this);if (result == JFileChooser.APPROVE_OPTION) {File file = fileChooser.getSelectedFile();try {BufferedWriter writer = new BufferedWriter(new FileWriter(file));writer.write(textArea.getText());writer.close();} catch (IOException ex) {ex.printStackTrace();}}}});fileMenu.add(newMenuItem);fileMenu.add(openMenuItem);fileMenu.add(saveMenuItem);fileMenu.add(saveAsMenuItem);menuBar.add(fileMenu);setJMenuBar(menuBar);}public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {@Overridepublic void run() {new Notepad();}});}}4. 总结本文介绍了一种基于Java语言开发的简易记事本设计方案。

JAVA课程设计-编写一个记事本程序

JAVA课程设计-编写一个记事本程序

JAVA课程设计-编写一个记事本程序Java语言程序设计B报告题目:编写一个记事本程序一.要求:用图形用户界面实现。

能实现编辑、保存、另存为、查找替换等功能。

提示:使用文件输入输出流。

二.课程设计思路。

设计两个类,一个记事本的类(JSB),具有程序的要求和功能再创建一个课设的主类(KESHE),在主类中创建一个JSB类的对象,就可以直接在编译器中运行程序。

在主界面中设计一个Frame容器,并在其中加入一个下拉菜单和一个文本域控件,把该容器设置为GridLayout(1,1)布局。

三.课程设计实现功能结构图。

3.1“文件”菜单。

3.2“编辑”菜单。

四.记事本实现功能代码实现。

4.1.界面设计。

主要代码:f=new Frame(s);p1=new TextArea("");f.setSize(400,600);f.setBackground(Color.white);f.setVisible(true);menubar=new MenuBar(); menu1=new Menu("文件"); menu2=new Menu("编辑"); item1=new MenuItem("新建"); item2=new MenuItem("打开"); item3=new MenuItem("保存"); item4=new MenuItem("另存为"); item5=new MenuItem("退出"); item6=new MenuItem("全选"); item7=new MenuItem("复制");item8=new MenuItem("剪切"); item9=new MenuItem("粘贴");menu1.add(item1);menu1.add(item2);menu1.add(item4); menu1.add(item5); menu2.add(item6); menu2.add(item7); menu2.add(item8); menu2.add(item9); menubar.add(menu1); menubar.add(menu2);f.setMenuBar(menubar);程序代码实现截图:4.2功能代码详细设计。

c语言课设实验报告-记事本程序(含源码)

c语言课设实验报告-记事本程序(含源码)

C语言课设实验报告[记事本程序]班级:学号:姓名:指导老师:C语言课设实验报告#define key_down 80#define key_up 72#define key_esc 1#define key_alt_f 33#define key_alt_x 45#define key_enter 28#define key_alt_e 18int get_key();void box(int startx,int stary,int high,int width);{int i,key,x,y,l;char *w=NULL,*d=NULL,*s=NULL;FILE *fp;char *menu[]={ "File ", "Edit ","Format","View","Help"};char *red[]={ "F", "E","F","V","H"};char *f[]={ "New ", "Open" , "Save", "Another","Quit alt_x"};char *e[]={"Search","Search next","Replace","Date"};char buf[16*10*2],buf1[16*2];textbackground(3);clrscr();window(1,1,80,1);textbackground(WHITE);textcolor(BLUE);clrscr();window(1,1,80,2);for(i=0, l=0; i <5;i++){x=wherex();y=wherey();textcolor(BLACK);cprintf( " %s ",menu[i]);l=strlen(menu[i]);gotoxy(x,y); x.y等的头文件*//*功能键的扫描码的定义*//* i为循环次数的序数,key为从键盘输入的功能键,x,y 为光标的坐标,l为菜单栏中菜单的字符长度*//*w是存放输入的内容(记录的事情)的指针,*s是存放输入的文件名的指针,*d是存放输入要定时的文件的文件名的指针*/ /*菜单栏中各个菜单的定义*//*菜单栏中菜单开头要标颜色的字母的定义*//* file 子菜单中项目的定义*//*edit子菜单的定义*/ /*缓冲区的定义*//*整个大窗口的背景颜色设置*//*创建菜单栏窗口*/ /*设置菜单栏窗口背景颜色为白色,字体颜色为蓝色*//*利用循环输出menu菜单栏,有多少个菜单循环多少次。

软件工程课程设计可供选的题目

软件工程课程设计可供选的题目

软件工程课程设计可供选的题目1.学生学籍管理系统2.图书查询系统3.电话交费系统4.单机五子棋游戏软件开发5.简单图形显示软件6.学生通讯录管理系统7.医药管理系统8.库存管理系统9.货物进销管理系统10.“贪吃蛇”游戏开发与设计11.学分统计系统12.博客系统13.模拟飞行系统14.多媒体播放设计15.计算机屏保开发16.“扫雷”游戏开发17.基于过滤的个人防火墙设计18.“二合一”小游戏开发19.财务管理系统20.工资管理系统21.项目管理系统22.学校收费管理系统23.基于bmp格式的图象压缩24.教务管理系统25.舰艇对战游戏26.俄罗斯方块小游戏27.企业备忘录系统28.图书借阅管理系统29.学生成绩管理系统30.会员管理系统31.网上订书系统32.银行储蓄系统33.医院药品进销存系统34.英语学习助手35.大学生就业咨询系统36.教务辅助管理系统37.手机话费查询系统38.教师信息管理系统39.人事档案管理系统40.学生公寓管理系统41.球队管理系统42.编写一个记事本程序43.模拟龟兔赛跑44.万年历45.日历记事本46.加密与解密47.小游戏48.聊天小程序49.网络监听程序50.网页浏览器开发其中部分的题目的(数据与功能)要求如下:(一)学生学籍管理系统1、主要的数据表学生基本情况数据表,学生成绩数据表,课程表,代码表等。

2、主要功能模块实现学生基本情况的录入,修改,删除等基本操作。

对学生基本信息提供灵活的查询方式。

完成一个班级的学期选课功能。

实现学生成绩的录入,修改,删除等基本操作。

能方便的对学生的个人学期成绩进行查询。

具有成绩统计,排名等功能。

具有留级,休学等特殊情况的处理功能。

能输出常用的各种报表。

具有数据备份和数据恢复功能。

3、设计要求学生成绩表的设计,要考虑到不同年级的教学计划的变化情况。

对于新生班级,应该首先进行基本情况录入,选课,然后才能进行成绩录入。

(二)图书管理系统1、主要的数据表图书基本信息表,借书卡信息表,借阅信息表,图书分类信息表,代码表等。

Android实现记事本功能

Android实现记事本功能

Android实现记事本功能本⽂实例为⼤家分享了Android实现记事本功能的具体代码,供⼤家参考,具体内容如下实现功能1、⽂本数据的存储2、图⽚数据存储3、视频数据存储4、⾃定义的Adapter5、SQlite的创建6、数据listview列表的显⽰demo地址界⾯布局<LinearLayout xmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="horizontal" ><Buttonandroid:id="@+id/text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="⽂字" /><Buttonandroid:id="@+id/img"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="图⽂" /><Buttonandroid:id="@+id/video"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="视频" /></LinearLayout><ListViewandroid:id="@+id/list"android:layout_width="fill_parent"android:layout_height="wrap_content" ></ListView></LinearLayout>数据库创建public class NotesDB extends SQLiteOpenHelper {public static final String TABLE_NAME = "notes";public static final String CONTENT = "content";public static final String PATH = "path";public static final String VIDEO = "video";public static final String ID = "_id";public static final String TIME = "time";public NotesDB(Context context) {super(context, "notes", null, 1);}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + ID+ " INTEGER PRIMARY KEY AUTOINCREMENT," + CONTENT+ " TEXT NOT NULL," + PATH + " TEXT NOT NULL," + VIDEO+ " TEXT NOT NULL," + TIME + " TEXT NOT NULL)");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {} }数据的加载public class AddContent extends Activity implements OnClickListener {private String val;private Button savebtn, deletebtn;private EditText ettext;private ImageView c_img;private VideoView v_video;private NotesDB notesDB;private SQLiteDatabase dbWriter;private File phoneFile, videoFile;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.addcontent);//主界⾯点击Button传递过来的数据val = getIntent().getStringExtra("flag");savebtn = (Button) findViewById(R.id.save);deletebtn = (Button) findViewById(R.id.delete);ettext = (EditText) findViewById(R.id.ettext);c_img = (ImageView) findViewById(R.id.c_img);v_video = (VideoView) findViewById(R.id.c_video);savebtn.setOnClickListener(this);deletebtn.setOnClickListener(this);notesDB = new NotesDB(this);dbWriter = notesDB.getWritableDatabase();initView();}//判断存储的是⽂字,图⽚,还是视频,启动相对应的控件public void initView() {if (val.equals("1")) { // ⽂字c_img.setVisibility(View.GONE);v_video.setVisibility(View.GONE);}if (val.equals("2")) {c_img.setVisibility(View.VISIBLE);v_video.setVisibility(View.GONE);Intent img = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);phoneFile = new File(Environment.getExternalStorageDirectory().getAbsoluteFile() + "/" + getTime() + ".jpg");img.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(phoneFile));startActivityForResult(img, 1);}if (val.equals("3")) {c_img.setVisibility(View.GONE);v_video.setVisibility(View.VISIBLE);Intent video = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);videoFile = new File(Environment.getExternalStorageDirectory().getAbsoluteFile() + "/" + getTime() + ".mp4");video.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(videoFile));startActivityForResult(video, 2);}}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.save:addDB();finish();break;case R.id.delete:finish();break;}}//存储数据public void addDB() {ContentValues cv = new ContentValues();cv.put(NotesDB.CONTENT, ettext.getText().toString());cv.put(NotesDB.TIME, getTime());cv.put(NotesDB.PATH, phoneFile + "");cv.put(NotesDB.VIDEO, videoFile + "");dbWriter.insert(NotesDB.TABLE_NAME, null, cv);}//时间的显⽰private String getTime() {SimpleDateFormat format = new SimpleDateFormat("yyyy年MM⽉dd⽇ HH:mm:ss"); Date curDate = new Date();String str = format.format(curDate);return str;}//完成数据拍摄后直接显⽰数据@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == 1) {Bitmap bitmap = BitmapFactory.decodeFile(phoneFile.getAbsolutePath());c_img.setImageBitmap(bitmap);}if (requestCode == 2) {v_video.setVideoURI(Uri.fromFile(videoFile));v_video.start();}}}⾃定义Adapterpublic class MyAdapter extends BaseAdapter {private Context context;private Cursor cursor;private LinearLayout layout;public MyAdapter(Context context, Cursor cursor) {this.context = context;this.cursor = cursor;}@Overridepublic int getCount() {return cursor.getCount();}@Overridepublic Object getItem(int position) {return cursor.getPosition();}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = LayoutInflater.from(context);layout = (LinearLayout) inflater.inflate(yout.cell, null);TextView contenttv = (TextView) layout.findViewById(R.id.list_content); TextView timetv = (TextView) layout.findViewById(R.id.list_time);ImageView imgiv = (ImageView) layout.findViewById(R.id.list_img);ImageView videoiv = (ImageView) layout.findViewById(R.id.list_video); cursor.moveToPosition(position);String content = cursor.getString(cursor.getColumnIndex("content"));String time = cursor.getString(cursor.getColumnIndex("time"));String url = cursor.getString(cursor.getColumnIndex("path"));String urlvideo = cursor.getString(cursor.getColumnIndex("video"));contenttv.setText(content);timetv.setText(time);imgiv.setImageBitmap(getImageThumbnail(url, 200, 200));videoiv.setImageBitmap(getVideoThumbnail(urlvideo, 200, 200,MediaStore.Images.Thumbnails.MICRO_KIND));return layout;}/** ListView 显⽰图⽚*/public Bitmap getImageThumbnail(String uri, int width, int height) {Bitmap bitmap = null;BitmapFactory.Options options = new BitmapFactory.Options();options.inJustDecodeBounds = true;bitmap = BitmapFactory.decodeFile(uri, options);options.inJustDecodeBounds = false;int beWidth = options.outWidth / width;int beHeight = options.outHeight / height;int be = 1;if (beWidth < beHeight) {be = beWidth;} else {be = beHeight;}if (be <= 0) {be = 1;}options.inSampleSize = be;bitmap = BitmapFactory.decodeFile(uri, options);bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,ThumbnailUtils.OPTIONS_RECYCLE_INPUT);return bitmap;}/**视频缩略图*/private Bitmap getVideoThumbnail(String uri, int width, int height, int kind) { Bitmap bitmap = null;bitmap = ThumbnailUtils.createVideoThumbnail(uri, kind);bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height,ThumbnailUtils.OPTIONS_RECYCLE_INPUT);return bitmap;}}ListView点击的详情页显⽰与数据删除public class SelectAct extends Activity implements OnClickListener {private Button s_delete, s_back;private ImageView s_img;private VideoView s_video;private TextView s_tv;private NotesDB notesDB;private SQLiteDatabase dbWriter;/** 点击item 的详情页对数据进⾏删除操作*/@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.select);s_delete = (Button) findViewById(R.id.s_delete);s_back = (Button) findViewById(R.id.s_back);s_img = (ImageView) findViewById(R.id.s_img);s_video = (VideoView) findViewById(R.id.s_video);s_tv = (TextView) findViewById(R.id.s_tv);/**读写权限*/notesDB = new NotesDB(this);dbWriter = notesDB.getWritableDatabase();s_back.setOnClickListener(this);s_delete.setOnClickListener(this);//判断是否存在图⽚if (getIntent().getStringExtra(NotesDB.PATH).equals("null")) {s_img.setVisibility(View.GONE);} else {s_img.setVisibility(View.VISIBLE);}if (getIntent().getStringExtra(NotesDB.VIDEO).equals("null")) {s_video.setVisibility(View.GONE);} else {s_video.setVisibility(View.VISIBLE);}// 设置需要显⽰的图⽚s_tv.setText(getIntent().getStringExtra(NotesDB.CONTENT));Bitmap bitmap = BitmapFactory.decodeFile(getIntent().getStringExtra(NotesDB.PATH));s_img.setImageBitmap(bitmap);s_video.setVideoURI(Uri.parse(getIntent().getStringExtra(NotesDB.VIDEO)));s_video.start();}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.s_delete:deleteDate();finish();break;case R.id.s_back:finish();break;}}//数据的删除public void deleteDate() {dbWriter.delete(NotesDB.TABLE_NAME,"_id=" + getIntent().getIntExtra(NotesDB.ID, 0), null);}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

记事本程序设计

记事本程序设计

课程设计说明书题目记事本程序系(部) 计算机科学与技术专业(班级) 计算机科学与技术姓名学号指导教师起止日期课程设计任务书课程名称:Java与面向对象程序设计设计题目:记事本程序已知技术参数和设计要求:1. 问题描述(功能要求):a 使用Java的awt包或Swing包的类库设计图形界面的记事本程序b 功能、界面设计仿照Windows的记事本程序c 使用图形界面中的事件委托机制来处理事件响应2.界面要求:用户界面设计不做统一规定,但应做到界面友好,易于操作。

3. 技术要求:要求利用面向对象的方法以及java的编程思想来完成系统的设计;在设计的过程中,建立清晰的类结构;在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法;要求运用面向对象的机制来实现系统功能。

4. 课程设计报告要求:详见《长沙学院课程设计管理规定》。

设计工作量:40课时工作计划:40课时:上机、调试。

计算机系机房指导教师签名:日期:教研室主任签名:日期:系主任签名:日期:长沙学院课程设计鉴定表目录第一章、需求分析 (1)1.1 需求分析 (1)1.2 功能设计 (1)第二章、概要设计 (2)2.1 程序设计思路 (3)2.2 程序流程 (3)2.2.1主序流程图 (3)2.2.2“文件”菜单操作图 (4)2.2.3“编辑”菜单操作图 (5)2.2.4“格式”菜单操作图 (6)2.2.5“帮助”菜单操作图 (7)2.3 程序相关说明 (8)第三章. 程序详细设计与分析 (9)3.1 初始化组件 (9)3.2. 创建文件菜单及文件菜单项 (9)3.3. 创建编辑菜单及菜单项 (10)3.4. 事件监听 (12)3.5 异常处理 (18)第四章.测试分析 (20)第五章.课程设计总结 (22)参考文献 (23)附录 (24)第一章、需求分析1.1需求分析此次试训课程要求使用Java程序编写简单的记事本程序,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能。

c编写记事本课程设计

c编写记事本课程设计

c 编写记事本课程设计一、课程目标知识目标:1. 学生能理解C语言的基本语法和结构,掌握记事本程序的基本框架。

2. 学生能运用C语言标准库函数进行文件操作,实现对记事本文件的读取、写入和保存功能。

3. 学生了解数据类型、变量、运算符等基本概念,并能运用到记事本程序编写中。

技能目标:1. 学生能运用所学知识,独立编写、调试和运行一个简单的C语言记事本程序。

2. 学生掌握基本的编程技巧,如代码规范、注释和错误处理,提高编程能力和代码质量。

3. 学生通过实际操作,学会使用C语言进行问题分析和解决,提高逻辑思维和动手实践能力。

情感态度价值观目标:1. 学生在编程过程中,培养耐心、细致和精益求精的工作态度,树立良好的编程习惯。

2. 学生通过编写记事本程序,激发对计算机科学的兴趣,增强学习动力。

3. 学生在合作交流中,学会倾听、尊重他人意见,培养团队协作精神。

本课程针对高年级学生,结合C语言学科特点和教学要求,以实用性为导向,旨在帮助学生掌握C语言编程基础,培养实际编程能力。

课程目标具体、可衡量,便于学生和教师在教学过程中明确预期成果,为后续教学设计和评估提供依据。

二、教学内容1. C语言基础语法回顾:变量定义、数据类型、运算符、控制语句(条件语句、循环语句)。

2. 文件操作:文件打开、读取、写入和关闭,文件指针操作,标准库函数(fopen、fprintf、fscanf、fclose等)。

3. 字符串处理:字符串概念,字符串操作函数(strlen、strcpy、strcat、strcmp等)。

4. 编程规范与技巧:代码结构、命名规则、注释、错误处理和调试。

5. 记事本程序设计:需求分析,功能模块划分,界面设计,核心功能实现(打开、新建、保存、编辑等)。

教学内容依据课程目标,结合教材章节进行选择和组织,确保科学性和系统性。

教学大纲安排如下:第一课时:C语言基础语法回顾,介绍文件操作概念。

第二课时:详细讲解文件操作函数,演示文件读写示例。

VB编写的记事本实验报告

VB编写的记事本实验报告

一、实验要求利用vb程序编写记事本,实现记事本的打开、保存、新建、编辑等一般功能。

二、实验目的掌握菜单编辑器的建立、控制,记事本新建打开保存的程序代码,理解并运用CommonDialog的属性和功能等内容。

三、设计软件所实现的功能实现记事本的功能如下:文件的新建、打开、保存、另存为、打印、退出功能,编辑的复制、粘贴、剪切、全选、时间\日期功能,以及格式里的字体功能。

四、设计介绍1、先利用菜单编辑器设计记事本的整体框架,如下图:2、通过在控件工具箱上右击点部件,找到Microsoft Commom Dialog Control 6.0将其左边的复选框勾上,选择确定,这样控件工具箱里就多了这个CommomDialog控件,将其拖拽到窗体上。

3、然后单击各个子菜单项,进入代码界面编写代码。

主要的代码如下:新建代码:Private Sub xinjian_Click()a = MsgBox("要保存吗?", 3, "记事本")If a = 6 Thenbaocun_ClickElseIf a = 7 ThenText1.Text = ""End IfEnd Sub打开的代码:Private Sub dakai_Click()a = MsgBox("要保存吗?", 3, "记事本")If a = 6 Thenbaocun_ClickElseIf a = 7 ThenCommonDialog1.FileName = ""CommonDialog1.Flags = vbofnfilemustexistCommonDialog1.Filter = "all files |*.*|(.exe)|*.exe|(*.txt)|*.txt"CommonDialog1.FilterIndex = 3CommonDialog1.DialogTitle = "open file(*.txt)"CommonDialog1.Action = 1form1.Caption = CommonDialog1.FileNameIf CommonDialog1.FileName = "" ThenMsgBox "no file selectd", 37, "checking"ElseText1.Text = ""Open CommonDialog1.FileName For Input As #1Do While Not EOF(1)Line Input #1, aText1.Text = Text1.Text + a + Chr$(13) + Chr$(10)LoopEnd IfEnd IfEnd Sub保存的代码:Private Sub baocun_Click()If CommonDialog1.FileName <> "" ThenOpen CommonDialog1.FileName For Output As #3Print #3, Text1.TextClose #3ElseCommonDialog1.DefaultExt = "txt"CommonDialog1.FileName = "1bw.txt"CommonDialog1.Filter = "text files(*.txt)|*.txt|all files(*.*)|*.*"CommonDialog1.FilterIndex = 1CommonDialog1.DialogTitle = "save file as(*.txt)"CommonDialog1.Flags = vbofnoverwriteprompt Or vbofnpathmustexistCommonDialog1.ShowSaveform1.Caption = CommonDialog1.FileNameIf CommonDialog1.FileName = "1bw.txt" ThenMsgBox "fail", 37, "checking"ElseOpen CommonDialog1.FileName For Output As #2Print #2, Text1.TextClose #2End IfEnd IfEnd Sub复制的代码:Private Sub fuzhi_Click()Clipboard.SetText Text1.SelTextEnd Sub粘贴的代码:Private Sub zhantie_Click()Text1.SelText = Clipboard.GetTextEnd Sub剪切的代码:Private Sub jianqie_Click()Clipboard.ClearClipboard.SetText Text1.SelTextText1.SelText = ""End Sub全选的代码:Private Sub quanxuan_Click()Text1.SelStart = 0Text1.SelLength = Len(Text1.Text)End Sub字体的代码:Private Sub ziti_Click()CommonDialog1.Flags = 3CommonDialog1.ShowFontText1.FontName = CommonDialog1.FontNameText1.FontSize = CommonDialog1.FontSizeText1.FontBold = CommonDialog1.FontBoldText1.FontItalic = CommonDialog1.FontItalicText1.FontUnderline = CommonDialog1.FontUnderlineText1.FontStrikethru = CommonDialog1.FontStrikethru End Sub是文本框的大小随窗体的变化而变化的代码:Private Sub Form_Resize()Text1.Height = form1.ScaleHeightText1.Width = form1.ScaleWidthEnd Sub4、主要的显示效果图如下所示:打开的效果:字体的效果:。

java简单记事本源代码

java简单记事本源代码

java简单记事本源代码Java简单记事本源代码一、引言记事本是我们日常生活中常用的工具之一,它可以帮助我们记录重要的事项和备忘录。

在本文中,我们将介绍一个简单的记事本的Java源代码,它具有基本的记事功能,包括新建、打开、保存和关闭等操作。

二、界面设计记事本的界面应该简洁明了,用户可以通过菜单栏或快捷键来完成各个功能。

我们可以使用Swing库来实现记事本的图形界面。

在界面上,我们可以添加一个菜单栏,包括文件、编辑、格式和帮助等几个选项。

其中,文件菜单下应该包括新建、打开、保存和关闭选项。

三、实现新建功能新建功能是记事本的基本功能之一,它可以创建一个新的文档供用户编辑。

在Java中,我们可以使用JTextArea组件来实现文本编辑区域。

当用户选择新建功能时,我们可以清空文本编辑区域,让用户可以开始编辑新的内容。

四、实现打开功能打开功能允许用户从计算机中选择一个已有的文档进行编辑。

在Java中,我们可以使用JFileChooser组件来实现文件选择对话框。

当用户选择打开功能时,我们可以弹出一个文件选择对话框,让用户选择一个文档进行打开。

然后,我们可以读取文档内容,并显示在文本编辑区域中供用户编辑。

五、实现保存功能保存功能可以将用户编辑完成的文档保存到计算机中。

在Java中,我们可以使用JFileChooser组件来实现文件保存对话框。

当用户选择保存功能时,我们可以弹出一个文件保存对话框,让用户选择保存的路径和文件名。

然后,我们可以将文本编辑区域中的内容保存到指定的文件中。

六、实现关闭功能关闭功能是记事本的重要功能之一,它可以关闭当前打开的文档并退出记事本程序。

在Java中,我们可以使用System.exit(0)语句来实现程序的退出。

当用户选择关闭功能时,我们可以先判断当前文档是否已保存,如果未保存,则弹出提示框询问用户是否保存。

如果用户选择保存,则执行保存功能;如果用户选择不保存,则直接退出程序。

记事本程序说明书

记事本程序说明书

*******************实践教学*******************理工大学计算机与通信学院 2012年秋季学期Java课程设计题目:记事本程序专业班级:软件基地班姓名:学号:指导教师:成绩:摘要本次课程设计的题目是用JAVA语言编写记事本程序,要:用图形界面实现;含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。

本程序主要用到了Java swing组件和事件监听器,还用到了文件的输入输出流。

记事本的界面参考了Windows中的记事本界面,并且根据课程设计要求做了适当的调整。

分别对每个事件定义事件监听器。

然后在实现相应的方法。

关键词:记事本程序;Java语言;swing组件目录摘要 (2)序言................................... 4错误!未定义书签。

第一章分析与设计........................ 5错误!未定义书签。

第二章详细设计. (6)第三章系统测试 (16)第四章软件使用说明书 (19)设计总结 (20)参考文献 (21)致 (22)序言Java语言是当今流行的网络编程语言,它具有面向对象、跨平台、分布应用等特点。

面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。

为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,使我们能够熟练的应用面向对象的思想和设计方法解决实际问题的能力。

通过此次课程设计,巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Eclipse等开发工具的运用,拓宽常用类库的应用。

使学生通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。

第一章分析与设计一、课程设计目的设计一个具有GUI界面的记事本,含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。

JAVA课程设计题目

JAVA课程设计题目

JAVA课程设计题目Java课程设计题目一、课程设计总体要求:本次课程设计是对前面学过的所有面向对象的编程思想以及编程方法的一个总结、回顾和实践,因此,开始设计前学生一定要先回顾以前所学的内容,明确本次作业设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。

通过编写一个基于JA V A的应用系统综合实例,来掌握Java语言编程技巧。

二、参考题目及要求:1、编写一个记事本程序要求:用图形用户界面实现。

能实现编辑、保存、另存为、查找替换等功能。

提示:使用文件输入输出流。

2、模拟龟兔赛跑要求:用图形用户界面实现。

能设置比赛时间,马匹的数量等等。

在任意时间段内马匹的速度是随机的。

开始比赛之后以动画显示赛马过程。

提示:使用多线程3、学生信息管理系统要求:使用图形用户界面用数据库建立1或2个学生信息表。

(不限使用哪种数据库)能连接数据库并实现查询、增、删、改等功能。

4、图书信息管理系统要求:使用图形用户界面用数据库建立1或2个图书信息表。

(不限使用哪种数据库)能连接数据库并实现查询、增、删、改等功能。

5、聊天小程序要求:使用图形用户界面。

能实现一个聊天室中多人聊天。

可以两人私聊。

提示:使用socket通信6、ATM柜员机模拟程序要求:使用图形用户界面。

当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:1、查询余额:初始余额为10000元2、A TM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。

3、A TM存款:不能出现负存款。

4、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

7、超市收银系统要求:使用图形用户界面。

由收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等。

从数据库中取出有关价格信息,再把这些信息返回给收银台。

记事本的程序设计及代码示例

记事本的程序设计及代码示例

记事本的程序设计及代码示例记事本是一种常见的应用程序,用于记录和编辑文本内容。

在本文中,我们将探讨记事本的程序设计,并给出一个基于Python语言的代码示例。

一、程序设计思路在设计记事本程序时,我们需要考虑以下几个方面:1. 用户界面设计:记事本的用户界面应简洁直观,方便用户输入和编辑文本内容。

可以采用菜单栏、工具栏和文本区域等组件,让用户可以进行打开、保存、复制、粘贴、查找替换等操作。

2. 功能设计:记事本应具备基本的文本编辑功能,如插入、删除、复制、粘贴和撤销等。

此外,还可以添加其他高级功能,如自动保存、自动换行、字体调整以及批量替换等。

3. 文件操作:记事本需要支持文件的打开和保存功能。

用户可以通过打开功能选择要编辑的文本文件,保存功能可以将编辑的内容保存为文件。

同时,还可以支持文件拖拽和快捷键操作。

二、代码示例下面是一个基于Python语言的记事本代码示例:```pythonimport tkinter as tkfrom tkinter import filedialogwindow = ()window.title("记事本")# 创建文本区域text_area = tk.Text(window)text_area.pack()# 打开文件函数def open_file():file_path = filedialog.askopenfilename() if file_path:with open(file_path, 'r') as file:text_area.delete(1.0, tk.END)text_area.insert(tk.END, file.read()) # 保存文件函数def save_file():file_path = filedialog.asksaveasfilename() if file_path:with open(file_path, 'w') as file:file.write(text_area.get(1.0, tk.END))menu_bar = tk.Menu(window)window.config(menu=menu_bar)# 添加文件菜单file_menu = tk.Menu(menu_bar, tearoff=False)menu_bar.add_cascade(label="文件", menu=file_menu)file_menu.add_command(label="打开", command=open_file)file_menu.add_command(label="保存", command=save_file)file_menu.add_separator()file_menu.add_command(label="退出", command=window.quit)# 运行主窗口window.mainloop()```以上代码使用Python的tkinter库创建了一个简易的记事本应用程序。

C#实现简单记事本程序

C#实现简单记事本程序

C#实现简单记事本程序本⽂实例为⼤家分享了使⽤C#写出⼀个简单的记事本程序,供⼤家参考,具体内容如下编程语⾔: C#编程环境: Visual Studio 2013运⾏环境: .NET Framework 4.5预览:功能:标题栏显⽰⽂件标题菜单栏各类菜单命令⽂件- 新建- 打开- 保存- 另存为- 页⾯设置- 打印- 退出编辑 - 撤销- 剪切- 复制- 粘贴- 全选- 时间/⽇期格式 - ⾃动换⾏- 字体视图 - 状态栏- ⼯具栏- 全屏模式帮助- 开源许可- 查看帮助- 关于⼯具栏常⽤⼯具集合标签栏⽂件标签显⽰⼯作区编辑区状态栏显⽰⽂件状态⽂本状态(新建/已修改)字符个数光标坐标功能实现本程序有两个窗体,分别为Form1和AboutBox1所有⽂件如下:对于Form1:需要引⼊的类库:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;窗体及空间声明代码:private System.Windows.Forms.MenuStrip menuStrip1;private System.Windows.Forms.ToolStripMenuItem ⽂件ToolStripMenuItem;private System.Windows.Forms.ToolStripMenuItem 新建ToolStripMenuItem;private System.Windows.Forms.ToolStripMenuItem 打开ToolStripMenuItem;private System.Windows.Forms.ToolStripMenuItem 保存ToolStripMenuItem;private System.Windows.Forms.ToolStripMenuItem 另存为ToolStripMenuItem;private System.Windows.Forms.ToolStripMenuItem 编辑ToolStripMenuItem;private System.Windows.Forms.ToolStripMenuItem 格式ToolStripMenuItem;private System.Windows.Forms.ToolStripMenuItem 退出ToolStripMenuItem;private System.Windows.Forms.ToolStripMenuItem 关于ToolStripMenuItem;private System.Windows.Forms.TextBox editBox1;private System.Windows.Forms.ToolStripMenuItem 撤销ToolStripMenuItem;private System.Windows.Forms.ToolStripMenuItem 剪切ToolStripMenuItem;private System.Windows.Forms.ToolStripMenuItem 复制ToolStripMenuItem;private System.Windows.Forms.ToolStripMenuItem 粘贴ToolStripMenuItem;private System.Windows.Forms.ToolStripMenuItem 删除ToolStripMenuItem;private System.Windows.Forms.ToolStripMenuItem 全选AToolStripMenuItem;private System.Windows.Forms.ToolStripMenuItem ⽇期DToolStripMenuItem;private System.Windows.Forms.ToolStripMenuItem 格式ToolStripMenuItem1;private System.Windows.Forms.ToolStripMenuItem 字体ToolStripMenuItem;private System.Windows.Forms.ToolStripMenuItem 查看VToolStripMenuItem;private System.Windows.Forms.ToolStripMenuItem 状态栏ToolStripMenuItem;private System.Windows.Forms.StatusStrip statusStrip1;private System.Windows.Forms.SaveFileDialog saveFileDialog1;private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1;private System.Windows.Forms.ToolStripSeparator toolStripMenuItem3;private System.Windows.Forms.ToolStripSeparator toolStripMenuItem4;private System.Windows.Forms.ToolStripMenuItem 页⾯设置UToolStripMenuItem;private System.Drawing.Printing.PrintDocument printDocument1;private System.Windows.Forms.PageSetupDialog pageSetupDialog1;private System.Windows.Forms.ToolStripMenuItem 打印PToolStripMenuItem;private System.Windows.Forms.PrintDialog printDialog1;private System.Windows.Forms.ToolStripMenuItem 查看帮助HToolStripMenuItem;private System.Windows.Forms.ToolStripSeparator toolStripMenuItem5;private System.Windows.Forms.ToolStripMenuItem ⾃动换⾏ToolStripMenuItem;private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1;public System.Windows.Forms.Timer timer1;private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel2;private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel3;private System.Windows.Forms.ToolStripMenuItem 全屏模式ToolStripMenuItem;private System.Windows.Forms.ToolStrip toolStrip1;private System.Windows.Forms.ToolStripButton newButton;private System.Windows.Forms.ToolStripButton openButton;private System.Windows.Forms.ToolStripButton saveButton;private System.Windows.Forms.ToolStripButton saveAsButton;private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;private System.Windows.Forms.ToolStripButton cutButton;private System.Windows.Forms.ToolStripButton copyButton;private System.Windows.Forms.ToolStripButton pasteButton;private System.Windows.Forms.ToolStripButton deleteButton;private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;private System.Windows.Forms.ToolStripButton timeButton;private System.Windows.Forms.ToolStripButton fullButton;private System.Windows.Forms.ToolStripButton textButton;private System.Windows.Forms.ToolStripMenuItem ⼯具栏ToolStripMenuItem;private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel4;private System.Windows.Forms.ToolStripMenuItem 开源许可OToolStripMenuItem;private System.Windows.Forms.TabControl tabControl1;private System.Windows.Forms.TabPage tabPage1;private System.Windows.Forms.TabPage tabPage2;private System.Windows.Forms.TextBox editBox2;1窗体载⼊:private void Form1_Load(object sender, EventArgs e){this.editBox1.ScrollBars = ScrollBars.Both;this.editBox2.ScrollBars = ScrollBars.Both;this.Text = textFileName + " - " + programeName;//显⽰⽂件名this.timer1.Start();editBox1.Focus();}⾸先进⾏⼀些固定变量声明:private string textFileName = "⽆标题";private string programeName = "Icey";private string filePath = "";private string asFilePath = "";private string selecteText = "";private string helpUrl = "https:///icey";private string openSourceUrl = "https:///mayuko2012/icey";private string wrongMessage = "你好像遇到了错误...";private string fileFormat = "⽂本⽂件(*.txt)|*.txt|Icey⽂件(*.ice)|*.ice|C++⽂件(*.cpp)|*.cpp|C⽂件(*.c)|*.c|所有⽂件(*.*)|(*.*)"; private string tabFileName1 = "⽆标题1 - Icey";private string tabFileName2 = "⽆标题2 - Icey";Boolean saveFileStatus1 = false;Boolean textChanged1 = false;Boolean saveFileStatus2 = false;Boolean textChanged2 = false;private void saveFile()//保存{if (!textFileName.Equals("")){SaveFileDialog saveFile = new SaveFileDialog();saveFile.Filter = fileFormat;saveFile.FileName = "*.txt";if (saveFile.ShowDialog() == DialogResult.OK){filePath = saveFile.FileName;StreamWriter sw = new StreamWriter(filePath, false, Encoding.Default);sw.Write((editBox1.Focused) ? editBox1.Text : editBox2.Text);sw.Close();if (editBox1.Focused){tabFileName1 = saveFile.FileName + " - " + programeName;saveFileStatus1 = true;}else if (editBox2.Focused){tabFileName2 = saveFile.FileName + " - " + programeName;saveFileStatus2 = true;}}}toolStripStatusLabel4.Text = "已保存";}另存为采⽤函数形式:private void saveAsFile()//另存为{SaveFileDialog saveAsFile = new SaveFileDialog();saveAsFile.Filter = fileFormat;saveAsFile.FileName = "*.txt";if (saveAsFile.ShowDialog() == DialogResult.OK){asFilePath = saveAsFile.FileName;StreamWriter sw = new StreamWriter(asFilePath, false, Encoding.Default);sw.WriteLine((editBox1.Focused) ? editBox1.Text : editBox2.Text);sw.Close();FileInfo fileInfo = new FileInfo(saveAsFile.FileName);textFileName = ;}toolStripStatusLabel4.Text = "已保存";}新建函数:private void newFile()//新建{if (editBox1.Focused){if (editBox1.Text != String.Empty && saveFileStatus1 == false && textChanged1 == true)//如果⽂本框不为空{DialogResult result = MessageBox.Show("是否将窗⼝1已编辑⽂件保存到 " + textFileName, wrongMessage, MessageBoxButtons.YesNoCancel, rmation); if (result == DialogResult.Yes){saveFile();Application.Exit();}else if (result == DialogResult.No){editBox1.Text = "";}}elseeditBox1.Text = "";}else if (editBox2.Focused){if (editBox2.Text != String.Empty && saveFileStatus2 == false && textChanged2 == true)//如果⽂本框不为空{DialogResult result = MessageBox.Show("是否将窗⼝2已编辑⽂件保存到 " + textFileName, wrongMessage, MessageBoxButtons.YesNoCancel, rmation); if (result == DialogResult.Yes){saveFile();Application.Exit();}else if (result == DialogResult.No){editBox2.Text = "";}}elseeditBox2.Text = "";}}打开⽂件函数:private void openFile()//打开OpenFileDialog openFile = new OpenFileDialog();openFile.Filter = fileFormat;if (openFile.ShowDialog() == DialogResult.OK){StreamReader sr = new StreamReader(openFile.FileName, Encoding.Default);if (editBox1.Focused){editBox1.Text = sr.ReadToEnd();}else if(editBox2.Focused){editBox2.Text = sr.ReadToEnd();}sr.Close();FileInfo fileInfo = new FileInfo(openFile.FileName);if (editBox1.Focused){tabFileName1 = + " - " + programeName;saveFileStatus1 = true;}else if (editBox2.Focused){tabFileName2 = + " - " + programeName;saveFileStatus2 = true;}textFileName = ;}}全屏模式函数:private void fullScreen()//全屏{if (全屏模式ToolStripMenuItem.Checked == false){this.WindowState = FormWindowState.Maximized;全屏模式ToolStripMenuItem.Checked = true;this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;}else{this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;this.WindowState = FormWindowState.Normal;全屏模式ToolStripMenuItem.Checked = false;}}退出菜单命令:private void 退出ToolStripMenuItem_Click(object sender, EventArgs e){if (editBox1.Text != String.Empty || saveFileStatus1 == false && textChanged1 == true){this.tabPage1.Show();this.editBox1.Focus();DialogResult result = MessageBox.Show("是否将窗⼝1已编辑⽂件保存到 " + textFileName, wrongMessage, MessageBoxButtons.YesNoCancel, rmation); if (result == DialogResult.Yes){saveFile();Application.Exit();}else if (result == DialogResult.No){Application.Exit();}}else if (editBox2.Text != String.Empty || saveFileStatus2 == false && textChanged2 == true){this.tabPage2.Show();this.editBox2.Focus();DialogResult result = MessageBox.Show("是否将窗⼝2已编辑⽂件保存到 " + textFileName, wrongMessage, MessageBoxButtons.YesNoCancel, rmation); if (result == DialogResult.Yes){saveFile();Application.Exit();}else if (result == DialogResult.No){Application.Exit();}}elseApplication.Exit();}Bool变量,⽤于判断TextBox是否发⽣变化:private void textBox1_TextChanged(object sender, EventArgs e){textChanged2 = true;toolStripStatusLabel4.Text = "已修改";}private void editBox2_TextChanged(object sender, EventArgs e)textChanged2 = true;toolStripStatusLabel4.Text = "已修改";}新建菜单命令:private void 新建ToolStripMenuItem_Click(object sender, EventArgs e){newFile();}打开菜单命令:private void 打开ToolStripMenuItem_Click(object sender, EventArgs e){openFile();}字体菜单命令:private void 字体ToolStripMenuItem_Click(object sender, EventArgs e){FontDialog fontDialog = new FontDialog();if (fontDialog.ShowDialog() == DialogResult.OK){if (editBox1.Focused){editBox1.Font = fontDialog.Font;}elseeditBox2.Font = fontDialog.Font;}}退出动作(当⽤户点击窗体右上⾓退出按钮时执⾏此操作):private void Form1_FormClosing(object sender, FormClosingEventArgs e){if (editBox1.Text != String.Empty && e.CloseReason == erClosing || saveFileStatus1 == false && textChanged1 == true)//如果⽂本框不为空&&触发关闭按钮事件{this.tabPage1.Show();this.editBox1.Focus();DialogResult result = MessageBox.Show("是否将窗体1已编辑⽂件保存到 " + textFileName, wrongMessage, MessageBoxButtons.YesNoCancel, rmation);if (result == DialogResult.Yes){saveFile();e.Cancel = false;}else if (result == DialogResult.No){e.Cancel = false;}else if (result == DialogResult.Cancel){e.Cancel = true;}}else if (editBox2.Text != String.Empty && e.CloseReason == erClosing || saveFileStatus2 == false && textChanged2 == true)//如果⽂本框不为空&&触发关闭按钮事件 {this.tabPage2.Show();this.editBox2.Focus();DialogResult result = MessageBox.Show("是否将窗⼝2已编辑⽂件保存到 " + textFileName, wrongMessage, MessageBoxButtons.YesNoCancel, rmation);if (result == DialogResult.Yes){saveFile();e.Cancel = false;}else if (result == DialogResult.No){e.Cancel = false;}else if (result == DialogResult.Cancel){e.Cancel = true;}}elseApplication.Exit();}状态栏命令(状态栏是否显⽰):private void 状态栏ToolStripMenuItem_Click(object sender, EventArgs e){if (状态栏ToolStripMenuItem.Checked == true){状态栏ToolStripMenuItem.Checked = false;statusStrip1.Visible = false;}else{状态栏ToolStripMenuItem.Checked = true;statusStrip1.Visible = true;}编辑命令:private void 编辑ToolStripMenuItem_Click(object sender, EventArgs e) {if ((editBox1.SelectedText.Equals(""))){剪切ToolStripMenuItem.Enabled = false;复制ToolStripMenuItem.Enabled = false;删除ToolStripMenuItem.Enabled = false;}else{剪切ToolStripMenuItem.Enabled = true;复制ToolStripMenuItem.Enabled = true;删除ToolStripMenuItem.Enabled = true;}}全选命令:private void 全选AToolStripMenuItem_Click(object sender, EventArgs e) {if (editBox1.Focused){this.editBox1.SelectAll();}elsethis.editBox2.SelectAll();}剪切复制粘贴删除命令:private void 剪切ToolStripMenuItem_Click(object sender, EventArgs e) {if (editBox1.Focused){selecteText = editBox1.SelectedText;this.editBox1.Cut();}else{selecteText = editBox2.SelectedText;this.editBox2.Cut();}}private void 撤销ToolStripMenuItem_Click(object sender, EventArgs e) {if (editBox1.Focused){this.editBox1.Undo();}elsethis.editBox2.Undo();}private void 复制ToolStripMenuItem_Click(object sender, EventArgs e) {if (editBox1.Focused){this.editBox1.Copy();}elsethis.editBox2.Copy();}private void 粘贴ToolStripMenuItem_Click(object sender, EventArgs e) {if (editBox1.Focused){this.editBox1.Paste();}elsethis.editBox2.Paste();}private void 删除ToolStripMenuItem_Click(object sender, EventArgs e) {if (editBox1.Focused){this.editBox1.SelectedText = "";}elsethis.editBox2.SelectedText = "";}保存命令:private void 保存ToolStripMenuItem_Click(object sender, EventArgs e) {saveFile();}private void 另存为ToolStripMenuItem_Click(object sender, EventArgs e){saveAsFile();}时间戳命令:private void ⽇期DToolStripMenuItem_Click(object sender, EventArgs e){if (editBox1.Focused){editBox1.AppendText(System.DateTime.Now.ToString());}elseeditBox2.AppendText(System.DateTime.Now.ToString());}页⾯设置命令:private void 页⾯设置UToolStripMenuItem_Click(object sender, EventArgs e){pageSetupDialog1.Document = printDocument1;this.pageSetupDialog1.AllowMargins = true;this.pageSetupDialog1.AllowOrientation = true;this.pageSetupDialog1.AllowPaper = true;this.pageSetupDialog1.AllowPrinter = true;this.pageSetupDialog1.Document = this.printDocument1;pageSetupDialog1.ShowDialog();}打印命令:private void 打印PToolStripMenuItem_Click(object sender, EventArgs e){this.printDialog1.Document = this.printDocument1;this.printDialog1.PrinterSettings = this.pageSetupDialog1.PrinterSettings;if (this.printDialog1.ShowDialog() == DialogResult.OK){try{this.printDocument1.Print();}catch (Exception ex){MessageBox.Show(ex.Message, wrongMessage, MessageBoxButtons.OK, MessageBoxIcon.Error);}}}查看帮助关于命令:private void 查看帮助HToolStripMenuItem_Click(object sender, EventArgs e){System.Diagnostics.Process.Start(helpUrl);}private void 关于ToolStripMenuItem_Click(object sender, EventArgs e){AboutBox1 about = new AboutBox1();about.StartPosition = FormStartPosition.CenterScreen;about.Show();about.Owner = this;//timer1.Stop();}⾃动换⾏命令:private void ⾃动换⾏ToolStripMenuItem_Click(object sender, EventArgs e){if (⾃动换⾏ToolStripMenuItem.Checked == true){editBox1.WordWrap = false;editBox2.WordWrap = false;⾃动换⾏ToolStripMenuItem.Checked = false;}else{editBox1.WordWrap = true;editBox2.WordWrap = true;⾃动换⾏ToolStripMenuItem.Checked = true;}}计时器(100 ms刷新频率):private void timer1_Tick(object sender, EventArgs e){toolStripStatusLabel1.Text = (editBox1.Focused) ? editBox1.Text.Length.ToString() + " 个字符" : editBox2.Text.Length.ToString() + " 个字符";int totalline = (editBox1.Focused) ? editBox1.GetLineFromCharIndex(editBox1.Text.Length) + 1 : editBox2.GetLineFromCharIndex(editBox2.Text.Length) + 1;//得到总⾏数int index = (editBox1.Focused) ? editBox1.GetFirstCharIndexOfCurrentLine() : editBox2.GetFirstCharIndexOfCurrentLine();//得到当前⾏第⼀个字符的索引int line = (editBox1.Focused) ? editBox1.GetLineFromCharIndex(index) + 1 : editBox2.GetLineFromCharIndex(index) + 1;//得到当前⾏的⾏号int col = (editBox1.Focused) ? editBox1.SelectionStart - index + 1 : editBox2.SelectionStart - index + 1;//.SelectionStart得到光标所在位置的索引 - 当前⾏第⼀个字符的索引 = 光标所在的列数 toolStripStatusLabel2.Text = "第" + line + "⾏,第" + col + "列";cutButton.Enabled = false;copyButton.Enabled = false;deleteButton.Enabled = false;}else{cutButton.Enabled = true;copyButton.Enabled = true;deleteButton.Enabled = true;}if (editBox1.Focused){editBox1.Focus();this.Text = tabFileName1;}else{editBox2.Focus();this.Text = tabFileName2;}if (editBox2.Focused){editBox2.Focus();this.Text = tabFileName2;}else{editBox1.Focus();this.Text = tabFileName1;}}⼯具栏命令(⼯具栏是否显⽰):private void ⼯具栏ToolStripMenuItem_Click(object sender, EventArgs e){if (⼯具栏ToolStripMenuItem.Checked == false){toolStrip1.Visible = true;⼯具栏ToolStripMenuItem.Checked = true;}else if(⼯具栏ToolStripMenuItem.Checked == true){toolStrip1.Visible = false;⼯具栏ToolStripMenuItem.Checked = false;}}开源许可命令:private void 开源许可OToolStripMenuItem_Click(object sender, EventArgs e) {System.Diagnostics.Process.Start(openSourceUrl);}⼯具栏的各个按钮:private void newButton_Click(object sender, EventArgs e){newFile();}private void openButton_Click(object sender, EventArgs e){openFile();}private void saveButton_Click(object sender, EventArgs e){saveFile();}private void saveAsButton_Click(object sender, EventArgs e){saveAsFile();}private void cutButton_Click(object sender, EventArgs e){if (editBox1.Focused){selecteText = editBox1.SelectedText;this.editBox1.Cut();}else{selecteText = editBox2.SelectedText;this.editBox2.Cut();}}private void copyButton_Click(object sender, EventArgs e){if (editBox1.Focused)this.editBox1.Copy();}elsethis.editBox2.Copy();}private void pasteButton_Click(object sender, EventArgs e) {if (editBox1.Focused){this.editBox1.Paste();}elsethis.editBox2.Paste();}private void deleteButton_Click(object sender, EventArgs e) {if (editBox1.Focused){this.editBox1.SelectedText = "";}elsethis.editBox2.SelectedText = "";}private void timeButton_Click(object sender, EventArgs e) {if (editBox1.Focused){editBox1.AppendText(System.DateTime.Now.ToString()); }elseeditBox2.AppendText(System.DateTime.Now.ToString()); }private void textButton_Click(object sender, EventArgs e) {FontDialog fontDialog = new FontDialog();if (fontDialog.ShowDialog() == DialogResult.OK){if (editBox1.Focused){editBox1.Font = fontDialog.Font;}elseeditBox2.Font = fontDialog.Font;}}private void fullButton_Click(object sender, EventArgs e) {fullScreen();}标签栏:private void tabPage1_Click(object sender, EventArgs e){editBox1.Focus();this.Text = tabPage1.Text;if (textChanged1 == false){toolStripStatusLabel4.Text = "新建";}}private void tabPage2_Click(object sender, EventArgs e) {editBox2.Focus();this.Text = tabPage2.Text;if (textChanged2 == false){toolStripStatusLabel4.Text = "新建";}}对于AboutBox:using System;using System.Collections.Generic;using ponentModel;using System.Drawing;using System.Linq;using System.Reflection;using System.Threading.Tasks;using System.Windows.Forms;namespace Notepad{partial class AboutBox1 : Form{public AboutBox1(){this.Text = String.Format("关于 {0}", AssemblyTitle);belProductName.Text = AssemblyProduct;belVersion.Text = String.Format("版本 {0}", AssemblyVersion);belCopyright.Text = AssemblyCopyright;belCompanyName.Text = AssemblyCompany;this.textBoxDescription.Text = AssemblyDescription;}#region 程序集特性访问器public string AssemblyTitle{get{object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);if (attributes.Length > 0){AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];if (titleAttribute.Title != ""){return titleAttribute.Title;}}return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);}}public string AssemblyVersion{get{return Assembly.GetExecutingAssembly().GetName().Version.ToString();}}public string AssemblyDescription{get{object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false); if (attributes.Length == 0){return "";}return ((AssemblyDescriptionAttribute)attributes[0]).Description;}}public string AssemblyProduct{get{object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);if (attributes.Length == 0){return "";}return ((AssemblyProductAttribute)attributes[0]).Product;}}public string AssemblyCopyright{get{object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); if (attributes.Length == 0){return "";}return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;}}public string AssemblyCompany{get{object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false); if (attributes.Length == 0){return "";}return ((AssemblyCompanyAttribute)attributes[0]).Company;}}#endregionprivate void AboutBox1_Load(object sender, EventArgs e){}private void okButton_Click(object sender, EventArgs e)}private void AboutBox1_FormClosing(object sender, FormClosingEventArgs e){Form1 frm1 = (Form1)this.Owner;frm1.timer1.Start();}}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

编写一个记事本程序

编写一个记事本程序

南京晓庄学院
面向对象课程设计报告题目编写一个记事本程序
所在院系
学生姓名专业
班级学号
指导教师
年月日
一.总体设计
说明系统功能,介绍系统的文件结构。

1.利用图例说明类的设计。

2.利用表格说明java源文件及其功能。

二、详细设计
详细阐述系统设计思路和过程。

1.类
(1)成员变量见表2
(2)方法见表2-2
(3)源代码见文件***.java 省略。

三.运行效果
1、保存文件
2、复制
3、粘贴
4、剪切
四.实验小结
通过这次设计,我对Java程序设计相关知识有了进一步的理解和学习,使我把平时掌握的java语言基本知识应用于实践中,在实际操作中加深对Java语言的理解。

但在此次实验中,在记事本上的一些功能实现上还存在着很多不足,比如要对文字的查找和替换时,要先选中文字后,才可以进行操作。

此次的实验,让我体会到Java编程在实际生活中应用的广泛与实用性,同时让我也复习了前面所学知识的同时发现在学习中的欠缺与不足,因而使我在今后的
学习中要更加努力。

编写一个记事本程序要求:用图形用户界面实现。能实现编辑、保存、另存为、查找替换等功能

编写一个记事本程序要求:用图形用户界面实现。能实现编辑、保存、另存为、查找替换等功能

编写一个记事本程序要求:用图形用户界面实现。

能实现编辑、保存、另存为、查找替换等功能。

(总3页)本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.Marchimport .*;importimport .*;importimport .*;public class NoteBook extends JFrame implementsActionListener,ItemListener,WindowListener,MouseListener{ Container c = ();JMenuBar jmb = new JMenuBar();JColorChooser jcc = new JColorChooser();JMenu jm1 = new JMenu("文件(F)");JMenu jm2 = new JMenu("编辑(E)");JMenu jm3 = new JMenu("格式(O)");JMenu jm4 = new JMenu("查看(V)");JMenu jm5 = new JMenu("帮助(H)");JMenuItem jmi1 = new JMenuItem("新建(N)");JMenuItem jmi2 = new JMenuItem("打开(O)");JMenuItem jmi3 = new JMenuItem("保存(S)");JMenuItem jmi4 = new JMenuItem("退出(X)");JMenuItem jmi5 = new JMenuItem("撤消(U)");JMenuItem jmi6 = new JMenuItem("复制(C)");JMenuItem jmi7 = new JMenuItem("粘贴(P)");JMenuItem jmi8 = new JMenuItem("剪切(T)");JMenuItem jmi12 = new JMenuItem("日期和时间");JMenuItem jmi9 =m new JMenuItem("字体(E)"); JCheckBoxMenuItem jcbmi = new JCheckBoxMenuItem("自动换行(W)"); JMenuItem jmi10 = new JMenuItem("删除(S)");JMenuItem jmi11 = new JMenuItem("背景颜色(H)");JTextArea jta = new JTextArea(15,15);JScrollPane jsp = new JScrollPane(jta);;} else if("Backspace")){rim().equals("0.")){ oString());} else{ ("0.");(0);} }op2=().trim());}else if("C")){;op1=op2=0;(0,()," ");preOp=currentOp=0;}public void itemStateChanged(ItemEvent e2){if()==jcbmi){(true);}else(false);}public static void main(String[] args){new NoteBook();}public void windowOpened(WindowEvent arg0) { }public void windowClosing(WindowEvent arg0) {int a = (this,"文件已被改变,是否要保存","提示",; if(a==1){();}else if(a==0){File f2 = null;JFileChooser jfc2 = new JFileChooser();int num2 = (this);if(num2=={f2=();());try{FileWriter fw = new FileWriter(f2); BufferedWriter bw = new BufferedWriter(fw); ());();();}catch(IOException e2){();}}if(a==2){/// //}}}public void windowClosed(WindowEvent arg0) {}public void windowIconified(WindowEvent arg0) { // TODO Auto-generated method stub}public void windowDeiconified(WindowEvent arg0) { // TODO Auto-generated method stub}public void windowActivated(WindowEvent arg0) { // TODO Auto-generated method stub}public void windowDeactivated(WindowEvent arg0) { // TODO Auto-generated method stub}public void mouseClicked(MouseEvent arg0) {// TODO Auto-generated method stub}public void mousePressed(MouseEvent arg0) {// TODO Auto-generated method stub}public void mouseReleased(MouseEvent arg0) {// TODO Auto-generated method stub}public void mouseEntered(MouseEvent arg0) {// TODO Auto-generated method stub}public void mouseExited(MouseEvent arg0) {// TODO Auto-generated method stub}}。

Java课程设计报告--实现记事本功能

Java课程设计报告--实现记事本功能

Java语言程序设计报告实现记事本功能系别:××××××姓名:×××班级:×××××××××指导老师:×××2011年6月5日目录一、摘要 (3)二、关键字: (3)三、前言 (3)四、目的: (4)五、要求: (4)六、设计分析 (4)1.概要设计 (4)1.1程序设计思路 (4)1.2模块说明图 (5)1.3程序流程图 (6)1.4程序相关说明 (6)2.程序详细设计与分析 (7)2.1.初始化组件............................................................ 错误!未定义书签。

2.2.构建菜单栏及其下拉菜单 (7)2.3.“文件”菜单的事件监听 (8)2.4.“编辑”菜单的事件监听 (9)2.5.异常处理 (9)七、测试分析 (10)八、源程序 (12)九、课程设计体会 (17)一、摘要本次课程设计的题目是用JAVA语言编写记事本程序,要求是:用图形界面实现;含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。

本程序主要用到了Java swing组件和事件监听器,还用到了文件的输入输出流。

记事本的界面参考了Windows中的记事本界面,并且根据课程设计要求做了适当的调整。

二、关键字:记事本程序;Java语言;MyEclipse三、前言Java的前身是Oak,它一开始只是被应用于消费性电子产品中。

后来它的开发者们发现它还可以被用于更大范围的Internet上。

1995年,Java语言的名字从Oak编程了Java。

1997年J2SE1.1发布。

1998年J2SE1.2发布,标志Java2的诞生。

Python基于Tkinter实现的记事本实例

Python基于Tkinter实现的记事本实例
这篇文章主要给大家介绍了关于pyqt5如何让qmessagebox按钮显示中文的相关资料文中通过示例代码介绍的非常详细对大家学习或者使用pyqt5具有一定的参考学习价值需要的朋友们下面来一起学习学习吧
Python基于 Tkinter实现的记事本实例
本文实例讲述了Python基于Tkinter实ห้องสมุดไป่ตู้的记事本。分享给大家供大家参考。具体如下:
t = te.get('0.0','10.0') f = open(mi.get(),'w') f.write(t) Button(text = 'Save' , command = save).pack(side = RIGHT) Button(text = 'Exit' , command = root.quit).pack(side = RIGHT) mainloop()
from Tkinter import * root = Tk('Simple Editor') mi=StringVar() Label(text='Please input something you like~' ).pack() te = Text(height = 30,width =100) te.pack() Label(text=' File name ').pack(side = LEFT) Entry(textvariable = mi).pack(side = LEFT) mi.set('*.txt') def save():
希望本文所述对大家的Python程序设计有所帮助。

python实现简易的记事本

python实现简易的记事本

python实现简易的记事本运⾏效果完整代码from tkinter import *from tkinter.filedialog import *from tkinter.messagebox import *import osfilename=''def author():showinfo('⼤道⾄简','简易记事本第⼀版')def power():showinfo('版权信息','本公司保留版权信息,不可以把本软件⽤于商业⽬的!')def myopen():global filenamefilename=askopenfilename(defaultextension='.txt')if filename=='':filename=Noneelse:root.title('简易记事本'+os.path.basename(filename))textPad.delete(1.0,END)f=open(filename,'r')textPad.insert(1.0,f.read())f.close()def new():global root,filename,textPadroot.title('未命名⽂件')filename=NonetextPad.delete(1.0,END)def save():global filenametry:f=open(filename,'w')msg=textPad.get(1.0,'end')f.write(msg)f.close()except:saveas()def saveas():f=asksaveasfile(initialfile='未命名.txt',defaultextension='.txt')global filenamefilename=ffh=open(f,'w')msg=textPad.get(1.0,END)fh.write(msg)fh.close()root.title('简易记事本'+os.path.basename(f))def cut():global textPadtextPad.event_generate('<<Cut>>')def copy():global textPadtextPad.event_generate('<<Copy>>')def paste():global textPadtextPad.event_generate('<<Paste>>')def undo():global textPadtextPad.event_generate('<<Undo>>')def redo():global textPadtextPad.event_generate('<<Redo>>')def select_all():global textPadtextPad.tag_add('sel','1.0','end')def find():global roott=Toplevel(root)t.title('查找')t.geometry('260x60+200+250')t.transient(root)Label(t,text='查找:').grid(row=0,column=0,sticky='e')v=StringVar()e=Entry(t,width=20,textvariable=v)e.grid(row=0,column=1,padx=2,pady=2,sticky='we')e.focus_set()c=IntVar()Checkbutton(t,text='不区分⼤⼩写',variabel=c).grid(row=1,column=1,sticky='e')Button(t,text='查找所有',command=lambda :search(v.get(),c.get(),textPad,t,e)).grid(row=0, column=2,sticky='e'+'w',padx=2,pady=2)def close_search():textPad.tag_remove('match','1.0',END)t.destroy()t.protocol('WM_DELETE_WINDOW',close_search)#def search(needle,cssnstv,textPad,t,e):textPad.tag_remove('match','1.0',END)count=0if needle:pos='1.0'while True:pos=textPad.search(needle,pos,nocase=cssnstv,stopindex=END)if not pos:breaklastpos=pos+str(len(needle))textPad.tag_add('match',pos,lastpos)count+=1pos=lastpostextPad.tag_config('match',foreground='yellow',background='green')e.focus_set()t.title(str(count)+'个被匹配')def popup(event):global editmenu_popup(event.x_root,event.y_root)root=Tk()root.title('简易记事本第⼀版')root.geometry('300x300+100+100')#geometry(wxh+xoffset+yoffset)menubar=Menu(root)#制作菜单实例,依附于⽗窗⼝root上⾯filemenu=Menu(menubar)#制作⽂件菜单项,依附于menubar菜单上⾯menubar.add_cascade(label='⽂件',menu=filemenu)#增加分层菜单filemenu.add_command(label='新建',accelerator='Ctrl+N',command=new)filemenu.add_command(label='打开',accelerator='Ctrl+O',command=myopen) filemenu.add_command(label='保存',accelerator='Ctrl+S',command=save)filemenu.add_command(label='另存为',accelerator='Ctrl+Alt+S',command=saveas) editmenu=Menu(menubar)#制作编辑菜单项,依附于menubar菜单上⾯menubar.add_cascade(label='编辑',menu=editmenu)editmenu.add_command(label='撤销',accelerator='Ctrl+Z',command=undo)editmenu.add_command(label='重做',accelerator='Ctrl+Y',command=redo)editmenu.add_command(label='剪切',accelerator='Ctrl+X',command=cut)editmenu.add_command(label='复制',accelerator='Ctrl+C',command=copy)editmenu.add_command(label='粘贴',accelerator='Ctrl+V',command=paste)editmenu.add_separator()editmenu.add_command(label='查找',accelerator='Ctrl+F',command=find)editmenu.add_command(label='全选',accelerator='Ctrl+A',command=select_all) aboutmenu=Menu(menubar)#制作关于菜单项,依附于menubar菜单上⾯menubar.add_cascade(label='关于',menu=aboutmenu)#增加分层菜单aboutmenu.add_command(label='作者',command=author)aboutmenu.add_command(label='版权',command=power)root.config(menu=menubar)shortcutbar=Frame(root,height=25,bg='light sea green')shortcutbar.pack(expand=NO,fill=X)Inlabel=Label(root,width=2,bg='antique white')Inlabel.pack(side=LEFT,anchor='nw',fill=Y)textPad=Text(root,undo=True)textPad.pack(expand=YES,fill=BOTH)scroll=Scrollbar(textPad)textPad.config(yscrollcommand=scroll.set)scroll.config(command=textPad.yview)scroll.pack(side=RIGHT,fill=Y)textPad.bind('<Control-N>',new)textPad.bind('<Control-n>',new)textPad.bind('<Control-O>',myopen)textPad.bind('<Control-o>',myopen)textPad.bind('<Control-S>',save)textPad.bind('<Control-s>',save)textPad.bind('<Control-A>',select_all)textPad.bind('<Control-a>',select_all)textPad.bind('<Control-f>',find)textPad.bind('<Control-F>',find)textPad.bind('<Control-3>',popup)root.mainloop()以上就是python 实现简易的记事本的详细内容,更多关于python 实现记事本的资料请关注其它相关⽂章!。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

import java.io.*;import java.util.Calendar;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class NoteBook extends JFrame implements ActionListener,ItemListener,WindowListener,MouseListener{Container c = this.getContentPane();JMenuBar jmb = new JMenuBar();JColorChooser jcc = new JColorChooser();JMenu jm1 = new JMenu("文件(F)");JMenu jm2 = new JMenu("编辑(E)");JMenu jm3 = new JMenu("格式(O)");JMenu jm4 = new JMenu("查看(V)");JMenu jm5 = new JMenu("帮助(H)");JMenuItem jmi1 = new JMenuItem("新建(N)");JMenuItem jmi2 = new JMenuItem("打开(O)");JMenuItem jmi3 = new JMenuItem("保存(S)");JMenuItem jmi4 = new JMenuItem("退出(X)");JMenuItem jmi5 = new JMenuItem("撤消(U)");JMenuItem jmi6 = new JMenuItem("复制(C)");JMenuItem jmi7 = new JMenuItem("粘贴(P)");JMenuItem jmi8 = new JMenuItem("剪切(T)");JMenuItem jmi12 = new JMenuItem("日期和时间");JMenuItem jmi9 =m new JMenuItem("字体(E)");JCheckBoxMenuItem jcbmi = new JCheckBoxMenuItem("自动换行(W)");JMenuItem jmi10 = new JMenuItem("删除(S)");JMenuItem jmi11 = new JMenuItem("背景颜色(H)");JTextArea jta = new JTextArea(15,15);JScrollPane jsp = new JScrollPane(jta);//PupolMenu pm = new Pupolmenu();NoteBook(){this.addWindowListener(this);c.setLayout(new BorderLayout());c.add(jmb,BorderLayout.NORTH);this.setTitle("新建文本文档");jmb.add(jm1);jm1.setMnemonic('f');jm1.addActionListener(this);jmb.add(jm2);jm2.setMnemonic('e');jmb.add(jm3);jm3.setMnemonic('o');jmb.add(jm4);jm4.setMnemonic('v');jmb.add(jm5);jm5.setMnemonic('h');jm1.add(jmi1);jmi1.addActionListener(this);jmi1.setAccelerator(KeyStroke.getKeyStroke('N',Event.CTRL_MASK,false)); jm1.addSeparator();jm1.add(jmi2);jmi2.setAccelerator(KeyStroke.getKeyStroke('O',Event.CTRL_MASK,false)); jmi2.addActionListener(this);jm1.addSeparator();jm1.add(jmi3);jmi3.setAccelerator(KeyStroke.getKeyStroke('S',Event.CTRL_MASK,false)); jmi3.addActionListener(this);jm1.addSeparator();jm1.add(jmi4);jmi1.setMnemonic('n');jmi2.setMnemonic('o');jmi3.setMnemonic('s');jmi4.setMnemonic('x');jmi4.addActionListener(this);jm2.add(jmi5);jm2.addSeparator();jm2.add(jmi6);jm2.addSeparator();jm2.add(jmi7);jm2.addSeparator();jm2.add(jmi8);jm2.add(jmi12);jmi12.addActionListener(this);jm3.add(jcbmi);jcbmi.addItemListener(this);jm3.addSeparator();jm3.add(jmi9);jm4.add(jmi10);jmi10.addActionListener(this);jm5.add(jmi11);jmi11.addActionListener(this);c.add(jsp);this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);this.setSize(500,500);this.setVisible(true);}public void actionPerformed(ActionEvent e){jta.setText("");this.setTitle("无标题- 记事本");}if(e.getSource()==jmi2){File f1;JFileChooser jfc1 = new JFileChooser();int num1 = jfc1.showOpenDialog(this);if(num1==JFileChooser.APPROVE_OPTION){ try{f1 = jfc1.getSelectedFile();this.setTitle(f1.getName());FileReader fr = new FileReader(f1); BufferedReader br = new BufferedReader(fr); String str;while((str = br.readLine())!=null){jta.setText(str);}fr.close();br.close();}catch(FileNotFoundException e1){e1.printStackTrace();}catch(IOException e2){e2.printStackTrace();}}}if(e.getSource()==jmi3){File f2 = null;JFileChooser jfc2 = new JFileChooser();int num2 = jfc2.showSaveDialog(this);if(num2==JFileChooser.APPROVE_OPTION){ f2=jfc2.getSelectedFile();this.setTitle(f2.getName());try{FileWriter fw = new FileWriter(f2); BufferedWriter bw = new BufferedWriter(fw); bw.write(jta.getText());bw.close();fw.close();}catch(IOException e2){e2.printStackTrace();}}int a = JOptionPane.showConfirmDialog(this,"文件已被改变,是否要保存?","提示",JOptionPane.YES_NO_CANCEL_OPTION);if(a==1){this.dispose();}else if(a==0){File f2 = null;JFileChooser jfc2 = new JFileChooser();int num2 = jfc2.showSaveDialog(this);if(num2==JFileChooser.APPROVE_OPTION){f2=jfc2.getSelectedFile();this.setTitle(f2.getName());try{FileWriter fw = new FileWriter(f2);BufferedWriter bw = new BufferedWriter(fw);bw.write(jta.getText());bw.close();fw.close();}catch(IOException e2){e2.printStackTrace();}this.dispose();}}}if(e.getSource()==jmi12){Calendar c1 =Calendar.getInstance();int y = c1.get(Calendar.YEAR);int m = c1.get(Calendar.MONTH);int d = c1.get(Calendar.DATE);int h = c1.get(Calendar.HOUR);int m1 = c1.get(Calendar.MINUTE);int m2 = m+1;jta.setText(y+"年"+m2+"月"+d+"日"+h+":"+m1);}if(e.getSource()==jmi11){Color ccc = JColorChooser.showDialog(this,"color",Color.BLACK);jta.setSelectedTextColor(ccc);jta.setBackground(ccc);}if(e.getSource()==jmi10){jta.replaceRange("",jta.getSelectionStart(),jta.getSelectionEnd());}mHelp = new JMenu("帮助(H)");mHelp.setMnemonic(KeyEvent.VK_H);mHelp.add(new JMenuItem("帮助主题"));mHelp.addSeparator();mHelp.add(new JMenuItem("关于计算器"));mPaste.setEnabled(true);} else if(s.equals("粘贴(P)")){ tResult.setText(copyBoard.toString());} else if(s.equals("CE")){//如果是CE则清除文本框tResult.setText("0.");} else if(s.equals("Backspace")){//如果是backspace则删除一个字符。

相关文档
最新文档