Java完整单记事本功能都实现
我用java编写的记事本代码,分享给大家
backcolor.add(white); backcolor.addSeparator();
backcolor.add(pink); backcolor.addSeparator();
backcolor.add(morecolor);
JMenuItem red=new JMenuItem("红色");//","橙","黄","","青","蓝","紫","黑","灰","白","粉红"
JMenuItem green=new JMenuItem("绿色");
JMenuItem yellow=new JMenuItem("黄色");
clear.setFont(a); clear.setForeground(Color.MAGENTA);
paste.setFont(a); paste.setForeground(Color.MAGENTA);
cut.setFont(a); cut.setForeground(Color.MAGENTA);
JMenuItem black=new JMenuItem("黑色");
JMenuItem gray=new JMenuItem("灰色");
JMenuItem white=new JMenuItem("白色");
JMenuItem pink=new JMenuItem("粉红");
记事本程序(全版)
《记事本程序》的设计与实现一、设计分析1.1系统概述记事本主要是对文字实行编辑处理的软件。
能实行新建、打开、保存等功能;并且能使用剪贴、复制、粘贴、清除功能,对文字更方便的录入。
另外还能够根据用户的需要查找相对应的文字,实现编辑功能。
1.2系统运行环境●操作系统:Windows XP●开发语言: JAVA●开发工具:JCreatorPro1.3功能需求描述因为记事本是一套简单的文本编辑器。
要求记事本不但要具备完善的编辑、方便的性能,还要提供更简便的操作。
这就要求设计人员在编辑过程当中尽可能的考虑到。
包括以下内容:1、对文本实行编辑;2、用户根据不同的权限可对文本实行添加、删除、修改等操作;3、对记事本实行各种编辑(精确、简单);二、总体设计记事本采用现有的编辑,简单的记事本编辑器,充分利用大家现有的编辑,减少大家的时间,提升大家对记事本的熟练。
记事本就具备编辑功能,能够即时根据大家需求实行新建、保存操作。
记事本筐架图2-1三、系统的实现3.1主界面包括文件、编辑、查找、协助操作界面子目录包括 复制、粘贴、新建、查找等,如图3-1显示。
图3-1.1记事本小程序文件 编辑 查找 帮助新建保存打开复制粘贴清除查 找查找 替换帮助图3-1.2图3-1.3图3-1.43.1完成图3-1程序代码如下import java.awt.*;import java.awt.event.*;import java.io.*;import java.awt.datatransfer.*;class MyMenuBar extends MenuBar{public MyMenuBar(Frame parent){parent.setMenuBar(this);}public void addMenus(String [] menus){for(int i=0;i<menus.length;i++)add(new Menu(menus[i]));}public void addMenuItems(int menuNumber,String[] items){for(int i=0;i<items.length;i++){if(items[i]!=null)getMenu(menuNumber).add(new MenuItem(items[i])); else getMenu(menuNumber).addSeparator();}}public void addActionListener(ActionListener al){for(int i=0;i<getMenuCount();i++)for(int j=0;j<getMenu(i).getItemCount();j++)getMenu(i).getItem(j).addActionListener(al);}}class MyFile{private FileDialog fDlg;public MyFile(Frame parent){fDlg=new FileDialog(parent,"",FileDialog.LOAD);}private String getPath(){return fDlg.getDirectory()+"\\"+fDlg.getFile();}public String getData() throws IOException{fDlg.setTitle("打开");fDlg.setMode(FileDialog.LOAD);fDlg.setVisible(true);BufferedReader br=new BufferedReader(new FileReader(getPath()));StringBuffer sb=new StringBuffer();String aline;while((aline=br.readLine())!=null)sb.append(aline+'\n');br.close();return sb.toString();}public void setData(String data) throws IOException{fDlg.setTitle("保存");fDlg.setMode(FileDialog.SAVE);fDlg.setVisible(true);BufferedWriter bw=new BufferedWriter(new FileWriter(getPath()));bw.write(data);bw.close();}}class MyClipboard{private Clipboard cb;public MyClipboard(){cb=Toolkit.getDefaultToolkit().getSystemClipboard();}public void setData(String data){cb.setContents(new StringSelection(data),null);}public String getData(){Transferable content=cb.getContents(null);try{return (String) content.getTransferData(DataFlavor.stringFlavor);//DataFlavor.stringFlavor会将剪贴板中的字符串转换成Unicode码形式的String对象。
java记事本实验报告doc
java记事本实验报告篇一:JAVA记事本实验报告(含源代码运行结果)嘉应学院计算机学院系/班别:指导老师:课程名称:实验内容:学生学号:学生姓名:实验地点:实验类型:实验时间:实验报告计算机学院1203班 Java语言程序设计用Java编写记事本第十四周至第十七周实验要求:能够通过使用JDK1.6安装开发windows 桌面应用程序。
实验目的:熟悉事件触发和事件监听以及组件和容器的界面安排,能够用java设计一个仿windows的标准型记事本。
实验过程描述:一、实验环境:网络实验室二、实验设备:PC机, 网络三、实验平台:winxp. JDK1.6过程描述:1.首先,安装JDK1.62.打开开始-》运行->输入cmd进入dos->cd 路径(原程序的路径)->javac NotepadTest.java(编绎)->java NotepadTest运行四、编写程序:import java.io.File;import .URLClassLoader;import .URL;import ng.InterruptedException;import java.io.FileInputStream;import java.io.FileOutputStream; import java.io.PrintStream;import java.util.Scanner;import java.util.Date;import java.util.Iterator;import java.util.List;import java.text.SimpleDateFormat; import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.ImageIcon;import javax.swing.JScrollPane; import javax.swing.JToolBar; import javax.swing.JMenuItem; import javax.swing.KeyStroke; import javax.swing.JPopupMenu; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.JFileChooser; import javax.swing.JColorChooser; import javax.swing.JDialog; import javax.swing.JTextField; import javax.swing.BorderFactory; import javax.swing.JList;import javax.swing.JComboBox; import javax.swing.UIManager; import javax.swing.JRadioButton; import javax.swing.JToggleButton;import javax.swing.ButtonGroup;import javax.swing.TransferHandler;import javax.swing.border.Border;import javax.swing.border.TitledBorder;import javax.swing.text.Document;import javax.swing.undo.UndoManager;import javax.swing.undo.UndoableEdit;import javax.swing.event.UndoableEditEvent; import javax.swing.event.UndoableEditListener; import javax.swing.event.DocumentListener;import javax.swing.event.DocumentEvent;import javax.swing.JComponent;import java.awt.Font;import java.awt.Window;import java.awt.Event;import java.awt.MediaTracker;import java.awt.Color;import java.awt.event.KeyListener;import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.Container;import java.awt.Toolkit;import java.awt.Image;import java.awt.GraphicsEnvironment;import java.awt.datatransfer.*;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.Clipboard;import java.awt.datatransfer.Transferable;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;import java.awt.event.KeyListener;import java.awt.event.KeyAdapter;import java.awt.event.ActionListener;import java.awt.event.MouseListener;import java.awt.event.MouseEvent;import java.awt.event.MouseAdapter;import java.awt.event.ActionEvent;class MyTransferHandler extends TransferHandler { JTextArea text=null;public MyTransferHandler(JTextArea text){this.text=text;}public boolean canImport(JComponent c, DataFlavor[] flavors)//在拖放操作期间重复调用此方法,判断是否可以输入{for (int i = 0; i if (DataFlavor.javaFileListFlavor.equals(flavors[i])){ return true;}}return false;}public boolean importData(JComponent com,Transferable t){try{篇二:记事本的设计与实现Java版实验报告报告编号:第九组JAVA课程设计报告记事本的设计与实现学生姓名:指导教师:所在系:电子信息系所学专业:计算机科学与技术年级:XX年12月目录摘要 ................................................ ................................................... .. (1)第1章前言 ................................................ ................................................... . (2)1.1研究背景................................................. ................................................... . (2)1.2 开发意义................................................. ................................................... (2)1.3 本文的组织结构 ................................................ ................................................... . (2)第2章需求分析 ................................................ ................................................... . (3)2.1系统功能分析 ................................................ ................................................... (3)2.2 设计目标................................................. ................................................... (4)第3章概要设计 ................................................ ................................................... . (5)第4章详细设计 ................................................ ................................................... ..................... (7)4.1文件模块的详细设计 ................................................ ................................................... (7)4.1.1新建模块的详细设计 ................................................ . (7)4.1.2打开模块的详细设计 ................................................ . (8)4.1.3保存、另存模块的详细设计 ................................................ . (8)4.1.4退出模块的详细设计 ................................................ . (9)4.2编辑模块的详细设计 ................................................ ................................................... (9)4.2.1撤销模块的详细设计 ................................................ . (9)4.2.2剪切模块的详细设计 ................................................ .. (10)4.2.3复制模块的详细设计 ................................................ .. (11)4.2.4粘贴模块的详细设计 ................................................ (11)4.2.5删除模块的详细设计 ................................................ .. (12)4.2.6全选模块的详细设计 ................................................ .. (12)4.2.7查找、替换模块的详细设计 ................................................ .. (13)4.3格式模块的详细设计 ................................................ ................................................... . (14)第5章系统测试 ................................................ ................................................... (15)5.1 程序主界面.................................................................................................... (15)5.2文件界面................................................. ................................................... .. (15)5.3编辑菜单................................................. ................................................... .. (17)第6章小结 ................................................ ................................................... .. (27)参考文献 ................................................ ................................................... . (27)摘要本组课程设计的课题是“记事本的设计与实现”,设计的记事本系统应具有新建、打开、保存、剪切、复制、粘贴、查找、字体设置等基本功能,满足用户对文件的处理,文本文档的编辑和字体的设置等要求。
java单例模式的实际应用
java单例模式的实际应用Java单例模式是一种常用的设计模式,它可以保证在一个JVM中只存在一个实例对象。
在实际应用中,单例模式可以解决一些特定场景下的问题,提高系统的性能和效率。
一、数据库连接池在使用数据库连接时,每次都需要创建连接对象和释放连接对象,这个过程比较耗时。
如果每次都创建新的连接对象,会导致系统性能下降。
这时可以使用单例模式来创建一个数据库连接池,保证系统中只有一个连接池对象,通过连接池管理连接的创建和释放,提高了系统的性能和效率。
二、日志记录器在系统开发中,通常需要记录系统的运行日志,以供日后排查问题或者监控系统运行状态。
使用单例模式创建一个日志记录器对象,可以保证系统中只有一个日志记录器实例,所有的日志记录都通过这个实例进行操作,便于集中管理和统一处理。
三、配置文件管理器在系统开发中,通常需要读取配置文件中的参数或者属性,以便灵活配置系统的行为。
使用单例模式创建一个配置文件管理器对象,可以保证系统中只有一个配置文件管理器实例,所有的配置文件读取操作都通过这个实例进行,便于统一管理和维护。
四、线程池在多线程编程中,线程的创建和销毁都需要耗费一定的系统资源。
如果每次都创建新的线程,会导致系统资源的浪费。
使用单例模式创建一个线程池对象,可以保证系统中只有一个线程池实例,通过线程池管理线程的创建和销毁,提高了系统的性能和效率。
五、缓存管理器在系统开发中,通常需要缓存一些数据,以提高系统的访问速度。
使用单例模式创建一个缓存管理器对象,可以保证系统中只有一个缓存管理器实例,通过缓存管理器来管理缓存的读取、存储和更新,提高了系统的性能和效率。
六、打印机管理器在某些场景下,需要使用打印机进行打印操作。
如果每次都新建一个打印机对象,会导致系统资源的浪费。
使用单例模式创建一个打印机管理器对象,可以保证系统中只有一个打印机管理器实例,通过打印机管理器来管理打印机的使用,提高了系统的性能和效率。
七、窗口管理器在图形界面编程中,通常需要使用窗口进行用户交互。
(格式已排好)国家开放大学电大《计算机应用基础(本)》终结性考试试题答案(格式已排好)任务二
08
参考文献
参考文献
[1] 黄俊勇. 基于Spring框架的研究与设计. 电脑知识与技术. 2018(03).116-117+120. [2] 仲昭勇,杨光军. 进销存管理系统中信息分析模块的设计与实现. 福建电 脑. 2013(06) 138-139. [3] 卢淑萍.JavaScript与jQuery实战教程. 北京:清华大学出版社, 2014.
计算机有关知识打下基础。
大纲说明
1. 课程内容的教学要求 2. 本课程内容的教学要求分为“掌握、理解、了解”三个层次。实践环节
是本课程重要的、不可缺少的组成部分。其中的“掌握”是指能够熟练运 用和操作;“理解”表示能够进行操作但不够熟练;“了解”表示看过演 示或体验过功能性的操作过程。
3. 本大纲适用于 Windows 10 / Office 2016 平台。
03
系统设计
系统设计
数据库分析设计
本系统选择Mysql数据库实现系统的底 层数据管理工作,这种数据库体积小, 安装简便,而且有充分的能力去提供企 业正常销售管过程中需要的数据管理需 求。
系统功能设计
设计系统的三层结构的最上层,也是直 接系统的用户和管理员的操作层。普通 用户和管理员都通过界面对其提供的按 钮或其他输入框,对系统中的数据或者 功能进行控制,各项控制功能直接交流 的对象就是业务逻辑层。
关键词:电器;管理系统;SQL;Java
01
引言
引言
01 研究背景
电器销售过程中在电子商务部 分的市场规模逐渐增强,并且 在2016年增加了35%以上,其 中手机电脑平板智能机达到了 两千多亿元。
02 研究意义
信息技术影响这现在的各个行 业的发展。各行业由于采用了 信息化技术,都在一定程度上 实现了提高生产经营效率的目 的。与此同时,当前信息技术 水平快速提高,所以这些行业 受到信息的影响也越来越大。
JAVA课程标准
《Java》课程标准一、概述(一)课程性质本课程的功能是通过课堂教学和实践教学相结合,使学生能够深入理解面向对象概念,清楚的了解Java软件开发工作流程,建立起应用程序的概念,最终能够掌握Java软件开发的基本方法、基本技能,培养利用JCreator、NetBeans等常用工具软件进行Java应用软件产品的分析、设计、编码、测试的综合应用能力,培养科学的思维方法,灵活运用知识的能力,实验操作能力,使学生具有较强的发现问题、分析问题、解决问题的能力,具有毕业后的直接上岗能力(或经短期培训后上岗),并且毕业时已具备一定的Java软件开发经验。
(二)课程基本理念本课程强调对学生职业岗位能力的培养和职业素养的养成,针对不同环节,采用恰当的教学方法,有意识、有步骤地将职业能力的训练和职业素养的形成融入到实际的教学过程中。
本课程按照理实一体、课内外互补、课堂教学与培优工程相结合的课程设计指导思想,以任务或项目为载体组织教学内容,突出学生的主体地位,在校内实训室和校外实训基地完成所有教学环节,实现“教、学、做”的有机融合;通过班级讲授、团队学习、个体辅导、展示交流、技能大赛等手段,实现从模仿到应用到创新的高职学生递进式培养。
(三)课程设计思路本课程标准在设计上本着懂方法,重应用的总体思路,突出体现职业教育的技能型、应用性特色,着重培养学生的实践应用技能,力求达到理论方法够用,技术技能过硬的目的。
首先应依据专业人才培养方案中关于人才培养目标的阐述,明确课程目标;其次,结合职业教育课程观、教学观、能力观,基于软件工程的开发过程,以项目化教学来组织课程内容,在课程内容的选择与排序中,以软件工程实施的不同阶段、典型任务为载体,将课程内容划分为互相联系的学习情景;第三,通过对各学习情景中学习目标、主要内容、授课方式、师生要求等各项内容的描述,来规范课程所要求的内容;第四,通过对课程内容的选取和组合,以一个完整的项目为载体,完成课程的实施;最后,通过对项目实施过程中各个环节的考察和评价,来完成对课程的评鉴与考核。
基于Kotlin的记事本App的开发与实现
作者简介院李彦龙渊 1983袁11-冤 袁男袁汉族袁籍贯院河南商丘袁硕士袁职称院工程师袁研究方向院移动软件开发遥
2021 .20 科学技术创新 - 79 -
LiveData 是一种可观察的数据存储器类遥 与常规的可观察 类不同袁LiveData 具有生命周期感知能力袁 意指它遵循其他应 用组件渊 如 Activity尧Fragment 或 Service冤 的生命周期遥 这种感 知能力可确保 LiveData 仅更新处于活跃生命周期状态的应用 组件观察者[6]遥 使用时注册观察者 Observer袁如果 LiveData 的实 例被通过 setValue(T),postValue(T)接口赋值更新数据时候袁会回 调 Observer 的 onChanged()接口袁一次触发更新 UI遥
智能手机已经成为人们工作生活的一个不可缺少的辅助设 备袁记录备忘功能的应用也成为了用户日常使用率很高的一款 应用程序袁 观察国内手机厂商的系统袁 都会预装记录备忘类应 用袁比如华为手机野 备忘录冶应用袁联想手机的野 联想记事本冶袁小 米手机的野 便签冶应用等遥另外开放市场上的 NearyMe 云笔记袁有 道云笔记袁大姨妈 App袁宝宝树孕育 APP 等记事本备忘类型的 应用都很受用户的欢迎[1]遥 智能手机上的记事本相对于传统的 记录方式可以做到记录形式的多样袁 更加的方便快捷遥 比如用 户可以通过录音尧视频尧图片尧文字等一种或者多种形式记录遥除 此之外记录的内容还可以通过智能识别的方式袁把包含时间点 信息的记录在日历应用中自动生成提醒袁更进一步提高便捷性遥 本文介绍基于谷歌在 2018 年 Goole I/O 大会上发布的 JetPack 组件库设计开发联想日历的过程袁为后续其它应用开发提供一 套快捷高效的方案和思路遥
java课程设计记事本设计报告
java课程设计记事本设计报告一、教学目标本课程旨在通过Java编程语言实现一个记事本应用程序,让学生掌握Java编程的基本概念和方法,培养学生的编程能力和解决问题的能力。
1.理解Java编程语言的基本语法和结构。
2.掌握Java编程中的数据类型、变量、运算符、控制语句等基本概念。
3.学习Java中的类和对象的概念,理解封装、继承和多态的原理。
4.熟悉Java中的常用类库和方法。
5.能够运用Java编程语言编写简单的程序。
6.能够使用Java编程语言实现一个记事本应用程序,包括文本的增删改查等功能。
7.能够分析并解决编程过程中遇到的问题。
情感态度价值观目标:1.培养学生的团队合作意识和沟通能力,通过小组合作完成项目。
2.培养学生的创新思维和解决问题的能力,鼓励学生进行自主学习和探索。
3.培养学生的学习兴趣和自信心,让学生感受到编程的乐趣和成就感。
二、教学内容本课程的教学内容主要包括Java编程语言的基本概念和方法,以及记事本应用程序的设计和实现。
1.Java编程语言的基本概念和方法:–数据类型、变量、运算符、控制语句等基本概念。
–类和对象的概念,封装、继承和多态的原理。
–常用类库和方法的使用。
2.记事本应用程序的设计和实现:–用户界面设计:创建文本框、按钮等控件,实现用户输入和显示功能。
–文件操作:实现文件的打开、保存、关闭等功能,使用文件读写技术。
–文本处理:实现文本的增删改查等功能,使用数据结构和算法进行文本管理。
三、教学方法本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等,以激发学生的学习兴趣和主动性。
1.讲授法:教师通过讲解Java编程语言的基本概念和方法,以及记事本应用程序的设计和实现,引导学生掌握相关知识。
2.讨论法:学生分组进行讨论,分享自己的理解和思路,互相学习和交流。
3.案例分析法:分析实际案例,让学生了解记事本应用程序的实际应用场景和设计思路。
4.实验法:学生通过编写代码和进行实验,实现记事本应用程序的功能,培养学生的实际编程能力和解决问题的能力。
《Java》课程设计》记事本
《Java课程设计》记事本课程设计报告书目录一、设计课题二、设计目的三、操作环境四、设计场所(机房号、机器号或自己机器)五、设计过程(设计内容及主要程序模块)六、本次设计中用到的课程知识点(列出主要知识点)七、设计过程中遇到的问题及解决办法八、程序清单五、设计过程(设计内容及主要模块,不少于3000字)1.设计要求1)界面设计2)功能实现(1)文件菜单:新建、打开、保存、另存为、退出等。
(2)其中新建菜单项可以新建一个记事本程序;打开菜单项可以打开一个用户指定的文本文件,并将其内容显示在记事本的文本区域;保存和另存为菜单项可分别实现文件的保存和另存为3)编辑菜单:复制、剪切和粘贴等4)帮助菜单:软件版本信5)右键弹出快捷菜单2.总体设计1)功能模块图:图一功能模块图2)功能描述1、打开记事本。
首先是标准型的记事本,拥有文件、编辑。
格式和帮助。
如图1所示:图1标准型记事本界面2、在标准型的记事本界面中,进行的新建一个本件名字叫新记事本。
如图2记事本文件帮助新建打开保存另存为退出复制剪切粘贴编辑关于记事本右键快捷格式字体颜色图2新建记事本功能3、用打开文件打开刚刚新建的新记事本。
如图三所示。
图3—打开文件4、点击退出即可退出,如图4所示:图4—退出记事本5、点击帮助可以看到有关记事本的相关信息,其中有作者名、版本、许可条款、隐私声明等必要信息。
如图5所示:图5—帮助相关信息6、右键可实现复制、粘贴、剪切、清除等常用功能,方便用户可以快捷方便的使用记事本。
如图6所示:图6—右键功能7、编辑也可实现制、粘贴、剪切、清除等常用功能,方便用户选择自己适合的方式,自由选择方便的快捷方式使用。
如图7:图7—编辑八、程序清单package test;import java.io.File;import java.io.*;import java.awt.event.*;import java.awt.Toolkit;import java.awt.*;import javax.swing.*;import javax.swing.filechooser.*;public class Notebook extends JFrame implements ActionListener,ItemListener{ //组件创建JButton b_save,b_close; //按钮JTextArea textArea; //文本框File tempFile; //文件JPanel jp; //面板JMenu file,edit,style,help; //菜单JMenuItemf_new,f_open,f_save,f_close,f_saveas,e_copy, e_paste,e_cut,e_clear,e_selectAll,e_find,e_rep lace,s_font,s_color,h_editor,h_help; //菜单条JMenuBar jmb;JScrollPane jsp; //滚动面板JPopupMenu popUpMenu = new JPopupMenu(); //右键弹出式菜单JLabel stateBar;//标签JLabel jl,jj;JFileChooser jfc = new JFileChooser(); //文件选择JMenuItemje_copy,je_paste,je_cut,je_clear,je_selectAll,je _find,je_replace; //弹出式菜单条public Notebook(){jfc.addChoosableFileFilter(new FileNameExtensionFilter("文本文件(*.txt)","txt"));jmb = new JMenuBar();textArea = new JTextArea();jsp = new JScrollPane(textArea);file = new JMenu("文件");edit = new JMenu("编辑");style = new JMenu("格式");help = new JMenu("帮助");je_copy = new JMenuItem("复制(C) ");je_paste = new JMenuItem("粘贴(P) ");je_cut = new JMenuItem("剪切(X) ");je_clear = new JMenuItem("清除(D) ");je_selectAll = new JMenuItem("全选(A) ");je_find = new JMenuItem("查找(F) ");je_replace = new JMenuItem("替换(R) ");je_copy.addActionListener(this); //给弹窗式的各组件添加监听器je_paste.addActionListener(this);je_cut.addActionListener(this);je_clear.addActionListener(this);je_selectAll.addActionListener(this);je_find.addActionListener(this);je_replace.addActionListener(this);//给界面上方的菜单条添加监听器f_new = new JMenuItem("新建(N)");f_new.setAccelerator(KeyStroke.getKeyS troke('N',InputEvent.CTRL_MASK,false)); //设置带修饰符快捷键f_new.addActionListener(this);f_open = new JMenuItem("打开(O)");f_open.setAccelerator(KeyStroke.getKey Stroke('O',InputEvent.CTRL_MASK,false));f_open.addActionListener(this);f_save = new JMenuItem("保存(S)");f_save.setAccelerator(KeyStroke.getKey Stroke('S',InputEvent.CTRL_MASK,false));f_save.addActionListener(this);f_saveas = new JMenuItem("另存为");f_saveas.setAccelerator(KeyStroke.getKe yStroke(KeyEvent.VK_S,InputEvent.CTRL_ MASK|InputEvent.SHIFT_MASK));f_saveas.addActionListener(this);f_close = new JMenuItem("退出(W)");f_close.setAccelerator(KeyStroke.getKey Stroke('W',InputEvent.CTRL_MASK,false));f_close.addActionListener(this);e_copy = new JMenuItem("复制(C)");e_copy.setAccelerator(KeyStroke.getKey Stroke('C',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_paste = new JMenuItem("粘贴(V)");e_paste.setAccelerator(KeyStroke.getKeyStro ke('V',InputEvent.CTRL_MASK,false));e_paste.addActionListener(this);e_cut = new JMenuItem("剪切(X)"); e_cut.setAccelerator(KeyStroke.getKeyStroke ('X',InputEvent.CTRL_MASK,false));e_cut.addActionListener(this);e_clear = new JMenuItem("清除(D)");e_clear.setAccelerator(KeyStroke.getKeyStrok e('D',InputEvent.CTRL_MASK,false));e_clear.addActionListener(this);e_selectAll = new JMenuItem("全选(A)");e_selectAll.setAccelerator(KeyStroke.getKey Stroke('A',InputEvent.CTRL_MASK,false));e_selectAll.addActionListener(this);e_find = new JMenuItem("查找(F)");e_find.setAccelerator(KeyStroke.getKeyStrok e('F',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_replace = new JMenuItem("替换(R)");e_replace.setAccelerator(KeyStroke.getK eyStroke('R',InputEvent.CTRL_MASK,false)) ;e_replace.addActionListener(this);s_font = new JMenuItem("字体(T)");s_font.setAccelerator(KeyStroke.getKeyStrok e('T',InputEvent.CTRL_MASK,false));s_font.addActionListener(this);s_color = new JMenuItem("颜色(C)...");s_color.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_C,InputEvent.CTRL_MAS K | InputEvent.SHIFT_MASK));s_color.addActionListener(this);h_editor = new JMenuItem("关于记事本");h_editor.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_E,InputEvent.CTRL_MAS K));h_editor.addActionListener(this);h_help = new JMenuItem("帮助信息(H)");h_help.setAccelerator(KeyStroke.getKeyStrok e(KeyEvent.VK_I,InputEvent.CTRL_MASK) );h_help.addActionListener(this);//添加右键弹出式菜单popUpMenu.add(je_copy);popUpMenu.add(je_paste);popUpMenu.add(je_cut);popUpMenu.add(je_clear);popUpMenu.addSeparator();popUpMenu.add(je_selectAll);popUpMenu.add(je_find);popUpMenu.add(je_replace);//编辑区鼠标事件,点击右键弹出"编辑"菜单textArea.addMouseListener(new MouseAdapter(){public void mouseReleased(MouseEvent e) {if(e.getButton() == MouseEvent.BUTTON3)popUpMenu.show(e.getComponent(), e.getX(), e.getY());} //e.getComponent()和textArea具有同等效果public void mouseClicked(MouseEvent e){if(e.getButton() == MouseEvent.BUTTON1)popUpMenu.setVisible(false);}});this.setJMenuBar(jmb);this.setTitle("记事本程序");file.add(f_new); //添加文件菜单组件file.add(f_open);file.addSeparator(); //加分隔线file.add(f_save);file.add(f_saveas);file.addSeparator();file.add(f_close);edit.add(e_copy); //添加编辑菜单组件edit.add(e_paste);edit.add(e_cut);edit.add(e_clear);edit.addSeparator();edit.add(e_selectAll);edit.add(e_find);edit.add(e_replace);style.addSeparator();style.add(s_font);style.add(s_color);jmb.add(file); //添加格式菜单组件jmb.add(edit);jmb.add(style);jmb.add(help);help.add(h_editor); //添加帮助菜单组件help.add(h_help);//textArea.setWrapStyleWord(true); //设置在单词过长的时候是否要把长单词移到下一行。
java简单记事本
Java简易记事本编写课题:设计一个简单的Windows记事本,可以实现以下功能1、文件的新建、打开、保存、另存为和退出;2、对文件的编辑,如复制、粘贴、剪切、替换等;3、执行完操作后,能够顺利关闭记事本。
源码:package MyPad;import java.awt.Event;import java.awt.FlowLayout;import java.awt.event.KeyEvent;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileOutputStream;import java.io.FileReader;import java.io.IOException;import javax.swing.JButton;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.KeyStroke;public class MyPad {static String path = "";public static void main(String[] args) {// 设置主窗体JFrame jf = new JFrame("MyPad");jf.setBounds(220, 90, 800, 600);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);final JFrame frame = new JFrame("替换");frame.setBounds(220, 90, 300, 250);JLabel l1 = new JLabel(" 原字符串");frame.add(l1);final JTextField tf1 = new JTextField();tf1.setColumns(15);frame.add(tf1);JLabel l2 = new JLabel(" 替换为");final JTextField tf2 = new JTextField();tf2.setColumns(15);JButton button = new JButton("确定");frame.setLayout(new FlowLayout());frame.add(l2);frame.add(tf2);frame.add(button);// 设置菜单栏JMenuBar jmbar = new JMenuBar();jf.setJMenuBar(jmbar);// ===============设置文件菜单===================== JMenu filemenu = new JMenu("文件(F)");JMenuItem newitem = new JMenuItem("新建(N)"); JMenuItem openitem = new JMenuItem("打开(O)");// openitem.setMnemonic('O');JMenuItem saveitem = new JMenuItem("保存(S)"); JMenuItem lsaveitem = new JMenuItem("另存为(A)"); JMenuItem exititem = new JMenuItem("退出(X)"); jmbar.add(filemenu);filemenu.add(newitem);filemenu.add(openitem);filemenu.add(saveitem);filemenu.add(lsaveitem);filemenu.addSeparator();filemenu.add(exititem);// ===============设置编辑菜单===================== JMenu editmenu = new JMenu("编辑(E)");JMenuItem cutitem = new JMenuItem("剪切(T)"); JMenuItem copyitem = new JMenuItem("复制(C)"); JMenuItem pasteitem = new JMenuItem("粘贴(P)"); JMenuItem replaceitem = new JMenuItem("替换(R)"); jmbar.add(editmenu);editmenu.add(cutitem);editmenu.add(copyitem);editmenu.add(pasteitem);editmenu.add(replaceitem);// ===============设置帮助菜单=====================JMenu helpmenu = new JMenu("帮助(H)");JMenuItem helpitem = new JMenuItem("MyPad说明(A)");jmbar.add(helpmenu);helpmenu.add(helpitem);final JTextArea text = new JTextArea();JScrollPane jsp = new JScrollPane(text);jf.add(jsp);jf.setVisible(true);// ===============设置快捷键=====================newitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, Event.CTRL_MASK));openitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, Event.CTRL_MASK));saveitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, Event.CTRL_MASK));cutitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, Event.CTRL_MASK));copyitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, Event.CTRL_MASK));pasteitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, Event.CTRL_MASK));replaceitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H, Event.CTRL_MASK));// ===============实现新建功能=====================newitem.addMouseListener(new MouseAdapter() {@Overridepublic void mouseReleased(MouseEvent e) {if (text.getText().equals(""))text.setText("");else {int value = JOptionPane.showConfirmDialog(null, "是否要保存文本?","提示", JOptionPane.YES_NO_OPTION);String text_ = text.getText();if (value == JOptionPane.YES_OPTION)try {lsave(text_);} catch (IOException e1) {e1.printStackTrace();}text.setText("");}}});// ===============实现打开功能=====================openitem.addMouseListener(new MouseAdapter() {@Overridepublic void mouseReleased(MouseEvent e) {if (text.getText().equals(""))nw(text);else {int value = JOptionPane.showConfirmDialog(null, "是否要保存文本?","提示", JOptionPane.YES_NO_OPTION);String text_ = text.getText();if (value == JOptionPane.YES_OPTION)try {lsave(text_);} catch (IOException e1) {e1.printStackTrace();}else if (value == JOptionPane.NO_OPTION)text.setText("");elsereturn;nw(text);}}});// ===============实现保存功能=====================saveitem.addMouseListener(new MouseAdapter() {@Overridepublic void mouseReleased(MouseEvent e) {String text_ = text.getText();try {save(text_);} catch (IOException e1) {e1.printStackTrace();}}});// ===============实现另存为功能=====================lsaveitem.addMouseListener(new MouseAdapter() {@Overridepublic void mouseReleased(MouseEvent e) {String text_ = text.getText();try {lsave(text_);} catch (IOException e1) {e1.printStackTrace();}}});// ===============实现退出功能=====================exititem.addMouseListener(new MouseAdapter() {@Overridepublic void mouseReleased(MouseEvent e) {if (text.getText().equals(""))System.exit(0);else {int value = JOptionPane.showConfirmDialog(null, "是否要保存文本?","提示", JOptionPane.YES_NO_OPTION);String text_ = text.getText();if (value == JOptionPane.YES_OPTION)try {lsave(text_);} catch (IOException e1) {e1.printStackTrace();}System.exit(0);}}});// ===============实现剪切功能===================== cutitem.addMouseListener(new MouseAdapter() {@Overridepublic void mouseReleased(MouseEvent e) { text.cut();}});// ===============实现复制功能===================== copyitem.addMouseListener(new MouseAdapter() { @Overridepublic void mouseReleased(MouseEvent e) { text.copy();}});// ===============实现粘贴功能===================== pasteitem.addMouseListener(new MouseAdapter() { @Overridepublic void mouseReleased(MouseEvent e) { text.paste();}});// ===============实现替换功能===================== replaceitem.addMouseListener(new MouseAdapter() {@Overridepublic void mouseReleased(MouseEvent e) { frame.setVisible(true);}});button.addMouseListener(new MouseAdapter() {@Overridepublic void mouseReleased(MouseEvent e) {String reptext =text.getText().replaceAll(tf1.getText(),tf2.getText());text.setText("");text.append(reptext);}});// ===============实现MyPad说明功能================helpitem.addMouseListener(new MouseAdapter() {@Overridepublic void mouseReleased(MouseEvent e) {JOptionPane.showOptionDialog(null, "程序名称:\n MyPad \n"+ "程序设计:\n Java课程设计 \n" + "简介:\n 一个简单的文字编辑器\n"+ " 制作: 软件工程小Y\n" + "联系方式:******@","关于MyPad", JOptionPane.DEFAULT_OPTION,RMATION_MESSAGE, null, null, null);}});}// Mainpublic static void openfile(File file, JTextArea text) throws IOException {BufferedReader bufr = new BufferedReader(new FileReader(file));String line = null;while ((line = bufr.readLine()) != null) {text.append(line);text.append("\r\n");}bufr.close();}public static void nw(JTextArea text) {JFileChooser chooser = new JFileChooser();if (chooser.showOpenDialog(chooser) ==JFileChooser.APPROVE_OPTION) {String path = chooser.getSelectedFile().getAbsolutePath();File file = new File(path);try {openfile(file, text);} catch (IOException e1) {e1.printStackTrace();}}}public static void lsave(String text) throws IOException { JFileChooser chooser = new JFileChooser();File file = null;if (chooser.showSaveDialog(chooser) ==JFileChooser.APPROVE_OPTION) {{path = chooser.getSelectedFile().getAbsolutePath();file = new File(path);savefile(file, text);}}}public static void save(String text) throws IOException {JFileChooser chooser = new JFileChooser();File file = null;if (path.equals("")) {if (chooser.showSaveDialog(chooser) ==JFileChooser.APPROVE_OPTION) {path = chooser.getSelectedFile().getAbsolutePath();} elsereturn;}file = new File(path);savefile(file, text);}public static void savefile(File file, String text) throws IOException {byte[] b = text.getBytes();if (file != null) {BufferedOutputStream bufw = new BufferedOutputStream( new FileOutputStream(file));bufw.write(b, 0, b.length);bufw.close();}}}。
记事本程序源代码汇总
import java.awt.event.*;import java.awt.*;import java.io.*;import ng.String;class jsb implements ActionListener{Dialog bb;String strt;int i;FileDialog fd;File file;public Frame f;public TextArea p1;public MenuBar menubar;public Menu menu1,menu2,menu3;public MenuItem item1,item2,item3,item4,item5,item6,item7,item8,item9,item10; jsb(String s{ i=0;f=new Frame(s;p1=new TextArea("";f.setSize(500,500;f.setBackground(Color.white;f.setVisible(true;menubar=new MenuBar(;menu1=new Menu("文件";menu2=new Menu("编辑";menu3=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("粘贴";item10=new MenuItem("关于";f.addWindowListener(new WindowAdapter({public void windowClosing(WindowEvent e {f.setVisible(false;System.exit(0;}};menu1.add(item1;menu1.add(item2;menu1.add(item3;menu1.add(item4;menu1.add(item5;menu2.add(item6;menu2.add(item7;menu2.add(item8;menu2.add(item9;menu3.add(item10;menubar.add(menu1;menubar.add(menu2;menubar.add(menu3;f.setMenuBar(menubar;item1.addActionListener(this;item2.addActionListener(this;item3.addActionListener(this;item4.addActionListener(this;item5.addActionListener(this;item6.addActionListener(this;item7.addActionListener(this;item8.addActionListener(this;item9.addActionListener(this;item10.addActionListener(this;f.setLayout(new GridLayout(1,1;f.add(p1;f.pack(;}public void actionPerformed(ActionEvent e { String ss;ss=p1.getText(.trim(;if (e.getSource(==item5{if (i==0 &&(ss.length(!=0{bc(;}else{System.exit(0;}}if (e.getSource(==item1{if (i==0&&(ss.length(!=0{bc(;}else{p1.setText("";i=0;f.setTitle("文件对话框"; } }if (e.getSource(==item2{fd=new FileDialog(f,"打开文件",0;fd.setVisible(true;try{file=new File(fd.getDirectory(,fd.getFile(;f.setTitle(fd.getFile(+"文件对话框"; FileReader fr=new FileReader(file; BufferedReader br=new BufferedReader(fr; String line = null;String view = "";while((line=br.readLine(!=null{view += line+"\n";}p1.setText(view;br.close(;fr.close(;}catch(IOException expIn{}}if (e.getSource(==item3{if (i==0{bc(;}else{try{file=new File(fd.getDirectory(,fd.getFile(;f.setTitle(fd.getFile(+"--记事本";FileWriter fw=new FileWriter(file; BufferedWriter bw=new BufferedWriter(fw; String s =p1.getText(;s = s.replaceAll("\n","\r\n";bw.write(s;bw.flush(;bw.close(;fw.close(;i=1;}catch(IOException expOut{i=0;}}}if (e.getSource(==item4{bc(;}if (e.getSource(==item10{bb=new Dialog(f,"关于";Label l1=new Label("本记事本的完成感谢老师和同学的帮助!!"; bb.add(l1; bb.setSize(250,150;bb.setBackground(Color.white;bb.show(;bb.addWindowListener(new WindowAdapter({public void windowClosing(WindowEvent e{bb.setVisible(false;bb.dispose(;}};}if (e.getSource(==item6{p1.setSelectionStart(0;p1.setSelectionEnd(p1.getText(.length(; }if (e.getSource(==item7{try{String str=p1.getSelectedText(;if(str.length(!=0{strt=str;}}catch(Exception ex{}}if (e.getSource(==item8{try{String str=p1.getSelectedText(;if(str.length(!=0{p1.replaceRange("",p1.getSelectionStart(,p1.getSelectionEnd(; } }catch(Exception ex{}}if (e.getSource(==item9{if(strt.length(>0{p1.insert(strt,p1.getCaretPosition(;}}}public void bc({fd=new FileDialog(f,"保存文件",1;fd.setVisible(true;try{file=new File(fd.getDirectory(,fd.getFile(;f.setTitle(fd.getFile(+"--记事本"; FileWriter fw=new FileWriter(file; BufferedWriter bw=new BufferedWriter(fw; String s =p1.getText(;s = s.replaceAll("\n","\r\n";bw.write(s;bw.flush(;bw.close(;fw.close(;i=1;}catch(IOException expOut{}} } public class EX0101 { public static void main(String args[] {jsb dd=new jsb("我的记事本";} }。
java电子日记本代码及运行结果
// 程序主类public class Diary{public static void main(String args[]) throws Exception{new LoginWindow();Remember win=new Remember();win、pack();}}import javax、swing、*;import javax、swing、tree、*;import java、awt、*;import java、awt、event、*;import javax、swing、event、*;import java、io、*;import java、util、*;// 日记本类class Remember extends JFrame implements TreeSelectionListener,ActionListener{private static final String DiaryRoot = null;JTree tree=null;int i=0,r=255,g=255,b=255;JTextArea text=new JTextArea(" ",20,50);DefaultMutableTreeNode root;DefaultMutableTreeNode month[]=new DefaultMutableTreeNode[13];JButton b_save=new JButton("保存"),b_fontCommen=new JButton("还原"),b_fontBig=new JButton("大字"),b_fontRed=new JButton("红色"),b_fontBlue=new JButton("蓝色"),b_bg=new JButton("背景");Remember(){Container con=getContentPane();DefaultMutableTreeNode root=new DefaultMutableTreeNode("日记本");//设置以月份为节点的树for(i=1;i<=12;i++){month[i]=new DefaultMutableTreeNode(""+i+"月");root、add(month[i]);}//设置不同月份的节点for(i=1;i<=12;i++){//处理有31天的月份if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){for(int j=1;j<=31;j++){String s1=month[i]、toString();String s2=j+"日、txt";new );//如果这一天写了日记则相应节点后面添加一个“*”来标志if(()==true) month[i]、add(new DefaultMutableTreeNode(j+"日*"));else month[i]、add(new DefaultMutableTreeNode(j+"日"));}}//处理有30天的月份else if(i==4||i==6||i==9||i==11){for(int j=1;j<=30;j++){String s1=month[i]、toString();String s2=j+"日、txt";new );//如果这一天写了日记则相应节点后面添加一个“*”来标志if(()==true) month[i]、add(new DefaultMutableTreeNode(j+"日*"));else month[i]、add(new DefaultMutableTreeNode(j+"日"));}}//处理有28天的月份else{for(int j=1;j<=28;j++) {String s1=month[i]、toString();String s2=j+"日、txt";new );//如果这一天写了日记则相应节点后面添加一个“*”来标志if(()==true) month[i]、add(new DefaultMutableTreeNode(j+"日*"));else month[i]、add(new DefaultMutableTreeNode(j+"日"));}}}//设置监听b_save、addActionListener(this);b_fontRed、addActionListener(this);b_fontCommen、addActionListener(this);b_fontBig、addActionListener(this);b_fontBlue、addActionListener(this);b_bg、addActionListener(this);//创建树及其面板tree =new JTree(root);JPanel p=new JPanel();//设置边界布局p、setLayout(new BorderLayout());JScrollPane scrollpane_1=new JScrollPane(text);//带滚动条的面板放置到中间,可以占据最大空间位置p、add(scrollpane_1,BorderLayout、CENTER);//设置面板,放置"保存"与"删除"按钮等按钮,面板放在上部JPanel p_1=new JPanel();p_1、add(b_save);p_1、add(b_fontCommen);p_1、add(b_fontBig);p_1、add(b_fontRed);p_1、add(b_fontBlue);p_1、add(b_bg);//设置布局p、add(p_1,BorderLayout、NORTH);JScrollPane scrollpane_2=new JScrollPane(tree);JSplitPane splitpane=new JSplitPane(JSplitPane、HORIZONTAL_SPLIT,true,scrollpane_2,p);tree、addTreeSelectionListener(this);con、add(splitpane);//设置窗体适配器,关闭功能addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System、exit(0);} });setVisible(true);setBounds(200,150,500,600);}//处理树节点事件public void valueChanged(TreeSelectionEvent e){//清空文本区中的内容text、setText(" ");if(e、getSource()==tree){//定义被选中的节点DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree、getLastSelectedPathComponent();//如果就是叶节点,则可以对文件进行操作if(node、isLeaf()){//日记以“-月-日、txt”的形式存储,所以要消除“*”号的影响String str=node、toString();str=str、substring(0,str、length()-1);for(int i=0;i<=12;i++){if(node、getParent()==month[i]){try {String temp=null;//打开以节点(“*”号影响已经消除)所定义的文本为文件名的文件new ()、toString()+str+"、txt");//建立文本文件输入流,读取文件(f);BufferedReader in=new BufferedReader(file);//将读到的文件内容添加到文本区中,按行读入while((temp=in、readLine())!=null)text、append(temp+'\n');();in、close();}catch( e1){ }catch(IOException e1){ }}}}}}//处理按钮事件public void actionPerformed(ActionEvent e){//处理"保存"按钮的事件if(e、getSource()==b_save){DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree、getLastSelectedPathComponent();String str=node、toString();//保存文件时去除“*”号的影响str=str、replace("*","");//如果就是叶节点,则可以对文件进行操作if(node、isLeaf()){//保存文件try{//建立以节点所定义的文本为文件名的文件new ()、toString()+str+"、txt");//建立文本文件输出流to (f);BufferedWriter out=new BufferedWriter(tofile);//将文本区中的内容写到文件缓冲区out、write(text、getText(),0,(text、getText())、length());//将缓冲区中的内容写到文件out、flush();to();out、close();}catch( e1){ }catch(IOException e1){ }}}// 处理"大字"按钮事件else if(e、getSource()==b_fontBig){text、setFont(new Font("Serif",1, 18));}// 处理"普通"按钮事件else if(e、getSource()==b_fontCommen){text、setFont(new Font("Serif",0,12));text、setForeground(Color、black);}// 处理"红色"按钮事件else if(e、getSource()==b_fontRed){text、setForeground(Color、red);}// 处理"蓝色"按钮事件else if(e、getSource()==b_fontBlue) {text、setForeground(Color、blue);}// 处理"背景"按钮事件else if(e、getSource()==b_bg){// 随机变化背景颜色// 随机+ - 操作,当op>0、5时做减法负责做加法,double op = Math、random();double c = Math、random()*10;if(op>0、5){// 使r,g,b三个标志RGB的变量减小一个随机的大小小在0-50之间的数if(c<4) r-=Math、random()*50;if(c>4 && c<7) g-=Math、random()*50;if(c>7) b-=Math、random()*50;}if(op<=0、5){// 使r,g,b三个标志RGB的变量增加一个随机的大小小在0-50之间的数if(c<4) r-=Math、random()*50;if(c>4 && c<7) g-=Math、random()*50;if(c>7) b-=Math、random()*50;}text、setBackground(new Color(r,g,b)); }}//删除文件void del(){// 调用外部命令执行批处理程序try{Runtime ce=Runtime、getRuntime();ce、exec("gxy、bat");} catch(IOException e1){ }}}//登陆窗口类class LoginWindow extends JDialog implements ActionListener{JTextField txtUserName=new JTextField(15); //用户名文本框JTextField txtPwd=new JPasswordField(15);//密码框JButton ok=new JButton("确定");JButton cancel=new JButton("取消");public LoginWindow(){JPanel[] p=new JPanel[4];for(int i=0;i<4;i++ )p[i]=new JPanel();JPanel p1=new JPanel(); //定义并建立面板setModal(true); //设置模态setBackground(Color、LIGHT_GRAY);//设置背景色Container contentPane=this、getContentPane();//取出内容面板contentPane、setLayout(new GridLayout(5,1)); //设置布局为5行1列p[1]、add(new JLabel("用户名:"));p[1]、add(txtUserName); //将组件添加到中间容器p[2]、add(new JLabel("密码:"));p[2]、add(txtPwd);p[3]、add(ok);p[3]、add(cancel);ok、addActionListener(this);cancel、addActionListener(this);txtUserName、addActionListener(this);txtPwd、addActionListener(this);contentPane、add(p[0]); //将面板添加到内容面板contentPane、add(p[1]);contentPane、add(p[2]);contentPane、add(p[3]);setDefaultCloseOperation(JFrame、DISPOSE_ON_CLOSE);//设置自动关闭窗口setSize(300,220);// Dimension 类封装单个对象中组件的宽度与高度Dimension screen=Toolkit、getDefaultToolkit()、getScreenSize(); setLocation((screen、width-300)/2,(screen、height-220)/2);setTitle("登录窗口");setResizable(false); //设置窗口大小固定setVisible(true);}//添加事件监听器public void actionPerformed(ActionEvent e){//处理”确定”按钮事件if(e、getSource()==ok||e、getSource()==txtPwd){if(txtUserName、getText()、trim()、equals("c") && txtPwd、getText()、equals("123"))//如果用户名为c密码为123 则正确{dispose(); //关闭登录窗口}else{JOptionPane、showMessageDialog(null,"用户名或密码错误!");txtUserName、requestFocus(); //设置焦点txtUserName、setSelectionStart(0); //设置选中文本开始位置txtUserName、setSelectionEnd(txtUserName、getText()、length()); }}//处理”取消”按钮事件else if(e、getSource()==cancel){dispose();System、exit(0); //退出程序}else if(e、getSource()==txtUserName) //在用户名文本框按回车移动焦点到密码框{txtPwd、requestFocus();}}}运行,出现登陆界面若输入的用户名与密码有误输入正确的用户名:c正确的密码:123登陆成功,进入电子日记版面输入内容,对字体进行加粗,变色与添加背景点击还原java电子日记本代码及运行结果凡就是在当天有过记录的日期都有*的标志。
JAVA--简单记事本源代码
JAVA--简单记事本源代码import javax.swing.JFrame;import javax.swing.JTextArea;import java.awt.*;import java.awt.event.*;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import javax.swing.*;import javax.swing.plaf.FileChooserUI;public class notepad extends JFrame implements ActionListener{//定义所需要的组件JTextArea jta=null;JMenuBar jmb=null;JMenu jm=null;JMenuItem jmi1=null;JMenuItem jmi2=null;public static void main(String[]args){new notepad();}public notepad(){//把组件添加到窗体上jta=new JTextArea();jmb=new JMenuBar();this.add(jta);this.setJMenuBar(jmb);//设置窗体属性this.setTitle("简易记事本");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setSize(400, 300);this.setVisible(true);//把菜单添加进菜单条jm=new JMenu("⽂件");jm.setMnemonic('f');jmb.add(jm);//把⼦菜单加⼊⾄菜单jmi1=new JMenuItem("打开");jmi2=new JMenuItem("保存");jmi1.setActionCommand("open");jmi2.setActionCommand("save");jm.add(jmi1);jm.add(jmi2);//为两个字菜单注册事件监听jmi1.addActionListener(this);jmi2.addActionListener(this);}public void actionPerformed(ActionEvent e){//对点击了打开进⾏处理if(e.getActionCommand().equals("open")){//创建⼀个⽂件选择组件JFileChooser jfc1=new JFileChooser();//设置⽂件选择器的名字jfc1.setDialogTitle("请选择⽂件....");//设置⽂件选择组件的类型(打开类型)jfc1.showOpenDialog(null);//显⽰该组件jfc1.setVisible(true);//获取选择⽂件的绝对路径String s;s=jfc1.getSelectedFile().getAbsolutePath();//将该⽂件显⽰到记事本上BufferedReader br=null;FileReader fr=null;try{//创建⼀个带缓冲的⽂件读取对象fr=new FileReader(s);br=new BufferedReader(fr);String text="";String m=null;//循环读取⽂件while((m=br.readLine())!=null){text+=m+"\r\n";}//将读取的结果打印到记事本上⾯this.jta.setText(text);}catch(Exception e1){e1.printStackTrace();}finally{//关掉打开的⽂件try{br.close();fr.close();}catch(Exception e2){e2.printStackTrace();}}}else if(e.getActionCommand().equals("save")){//创建⼀个⽂件选择组件JFileChooser jfc=new JFileChooser();//设置⽂件选择的名称jfc.setDialogTitle("另存为");//设置⽂件选择组件的类型(保存类型)jfc.showSaveDialog(null);//显⽰该组件jfc.setVisible(true);//获取选择⽂件的绝对路径String filename;filename=jfc.getSelectedFile().getAbsolutePath(); //将记事本内的⽂本保存⾄该路径BufferedWriter bw=null;FileWriter fw=null;try{//创建⽂件输出⽂件fw=new FileWriter(filename);bw=new BufferedWriter(fw);//获取⽂本String outtext="";outtext=this.jta.getText();//输出⽂本fw.write(outtext);}catch(Exception e2){e2.printStackTrace();}finally{//关闭打开的输出⽂件try{bw.close();fw.close();}catch(Exception e3){e3.printStackTrace();}}}}}。
java桌面课程设计记事本
java桌面课程设计记事本一、教学目标本课程的目标是让学生掌握Java语言实现桌面应用程序的基本技能,通过学习Java语言基础和GUI编程,培养学生的编程能力和解决实际问题的能力。
在知识目标方面,要求学生掌握Java语言基本语法、面向对象编程思想、常用类库和GUI组件的使用。
在技能目标方面,要求学生能够独立设计并实现一个桌面记事本应用程序,掌握Java编程的基本流程。
在情感态度价值观目标方面,培养学生的团队合作意识,提高学生解决问题的能力,使学生认识到计算机编程在实际应用中的重要性。
二、教学内容本课程的教学内容主要包括Java语言基础、面向对象编程、GUI编程和桌面应用程序设计。
具体包括以下几个部分:1.Java语言基础:Java语言的基本语法、数据类型、运算符、控制结构、数组、字符串等。
2.面向对象编程:类与对象、封装、继承、多态、接口、集合等。
3.GUI编程:Swing组件、事件处理、布局管理、菜单栏、工具栏等。
4.桌面应用程序设计:记事本应用程序的需求分析、设计、实现和测试。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式。
包括:1.讲授法:讲解Java语言基础、面向对象编程和GUI编程的基本概念和原理。
2.案例分析法:分析典型的桌面应用程序案例,引导学生学会分析问题和解决问题。
3.实验法:让学生动手编写代码,实现桌面记事本应用程序,提高学生的实际操作能力。
4.讨论法:学生进行小组讨论,分享学习心得和经验,培养学生的团队合作意识。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《Java核心技术卷I》、《Java GUI编程》等。
2.参考书:《Java编程思想》、《Effective Java》等。
3.多媒体资料:教学PPT、视频教程、在线代码示例等。
4.实验设备:计算机、网络环境、编程软件(如Eclipse、IntelliJ IDEA等)。
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、超市收银系统要求:使用图形用户界面。
由收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等。
从数据库中取出有关价格信息,再把这些信息返回给收银台。
java编程记事本代码
import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; public class Notepad extends JFrame {係统组件声明private JMenuBar menuBar = new JMe nuBar(; private JEditorPa ne content = new JEditorPa ne(; private JScrollPa ne scroll = new JScrollPa ne(c ontent; private JFileChooser filechooser = new JFileChooser(; private BorderLayout bord = new BorderLayout(; private JLabel statusBar = new JLabel(; private JPanel pane = new JPanel(; private File file = null; /定义文件菜单private JMenu fileMenu = new JMenu(; private JMenultem newMenultem = new JMenultem(; private JMe nultem ope nMen ultem = new JMe nultem(; private JMe nultem saveMe nultem = new JMe nultem(; private JMe nultem saveAsMe nultem = new JMe nultem(; private JMe nultem pageSetupMe nultem = new JMe nultem(; private JMe nultem prin tMe nultem = new JMe nultem(; private JMe nultem exitMe nultem = new JMenultem(; // 定义风格菜单private JMenu styleMenu = new JMenu(; private Butt on Group styleMe nu Group = new Butt on Group(; private JRadioButt onMen ultem javaStyleMe nultem = new JRadioButt onMen ultem(; private JRadioButt onMen ultem metalStyleMe nultem = new JRadioButt onMen ultem(; private JRadioButt onMen ultem windowsStyleMenultem = new JRadioButtonMenultem(; // 定义帮助菜单private JMe nultem aboutMe nultem = new JMe nultem(; private JMe nultem helpTopicMe nultem =new JMenultem(; private JMenu helpMenu = new JMenu(; 〃构造函数public Notepad({ initComponents(; } private void initComponents({ // 添加子菜单项到文件菜单fileMe nu.setText("\u6587\u4ef6 (F"; n ewMe nultem.setText(” 新建(NCtrl+N"; ope nMen ultem.setText(” 打开(O…Ctrl+O"; saveMe nultem.setText(”保存(S Ctrl+S"; saveAsMenultem.setText(” 另存为(A..."; pageSetupMenultem.setText(” 页面设置(U..."; printMenultem.setText(” 打印(P... Ctrl+P"; exitMe nultem.setText(” 退出";fileMe nu.add( newMe nultem;fileMe nu .add(ope nMen ultem; fileMe nu .add(saveMe nultem; fileMe nu .add(saveAsMe nultem; fileMe nu.addSeparator(; fileMenu.add(pageSetupMenultem;fileMenu.add(printMenultem; fileMe nu.addSeparator(; fileMe nu.add(exitMe nultem; // 添加子菜单项到风格菜单styleMe nu.setText(‘ 风格(S"; javaStyleMe nultem.setText("Java 默认";metalStyleMe nultem.setText("Metal 风格";wi ndowsStyleMe nultem.setText("Wi ndows 风格";styleMe nuGroup.add(javaStyleMe nultem;styleMe nuGroup.add(metalStyleMe nuItem;styleMe nu Group.add(wi ndowsStyleMe nultem; styleMe nu .add(javaStyleMe nultem; styleMe nu.add(metalStyleMe nultem; styleMe nu.add(wi ndowsStyleMe nultem; // 添加子菜单项到帮助菜单helpMenu.setText(‘帮助(H"; helpTopicMenultem.setText(” 帮助主题(H"; aboutMenultem.setText(” 关于记事本(A";helpMe nu .add(helpTopicMe nultem; helpMe nu .addSeparator(;helpMe nu .add(aboutMe nultem; //定义文件菜单下的事件监听n ewMe nultem.addActio nListe ner(new n ewMe nultem_actio nAdapter(this; ope nMen ultem.addActio nListe ner(new ope nMen ultem_actio nAdapter(this; saveMenultem.addActio nListe ner(new saveMe nultem_actio nAdapter(this; saveAsMe nultem.addActio nListe ner(new saveAsMe nultem_actio nAdapter(this; pageSetupMe nultem.addActio nListe ner(new pageSetupMe nultem_actio nAdapter(this; prin tMe nultem.addActi on Liste ner(n ew prin tMe nultem_actio nAdapter(this;exitMenultem.addActionListener(new exitMenultem_actionAdapter(this; // 定义风格菜单下的事件监听javaStyleMenultem.addActionListener(newjavaStyleMenultem_actionAdapter(this; metalStyleMenultem.addActionListener(new metalStyleMe nultem_actio nAdapter(this;wi ndowsStyleMe nultem.addActio nListe ner(newwi ndowsStyleMe nultem_actio nAdapter(this; // 定义帮助菜单下的事件监听helpTopicMe nultem.addActio nListe ner(new helpTopicMe nultem_actio nAdapter(this; aboutMe nultem.addActio nListe ner(new aboutMe nultem_actio nAdapter(this; 〃填加菜单至U菜单栏menuBar.add(fileMenu; menuBar.add(styleMenu; menuBar.add(helpMenu; // 对主窗口的一些设置this.setDefaultCloseOperation(EXIT_ON_CLOSE; this.setTitle(" 纪生的记事本";this.setSize(640,480; setJMenuBar(menuBar; pane.setLayout(bord;pane.add("Center",scroll; setContentPane(pane; } /定义新建菜单项方法public void newMe nultemActio nPeformed(Actio nEve nt evt{ file = nu II;if(!("".equals(co nten t.getText({ Object]] optio ns = {" 是(Y "," 否(N "," 取消"}; int s = JOptio nPan e.showOptio nDialog( null, "\u6587\u4ef6 "+getTitIe(+"\u7684\u6587\u5b57\u5df2\u7ecf\u6539\u53d8\u3002\n\u60f3\u4fdd\u5b58\u6587\u4ef6 \u5417\uff1f", "\u8bb0\u4e8b\u672c", JOptio nPan e.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]; switch(s{ case 0: int returnVal=filechooser.showSaveDialog(this; if(returnVal ==JFileChooser.APPROVE_OPTION { file=filechooser.getSelectedFile(; try{ FileWriterfw=new FileWriter(file; fw.write(co nten t.getText(;setTitle(filechooser.getSelectedFile(.getName(+" - \u8bb0\u4e8b\u672c"; fw.close(; } catch(Excepti on e{ e.pri ntStackTrace(; } break; } case 1: conten t.setText(""; setTitle("无标题-\u8bb0\u4e8b\u672c"; } } } // 定义打开菜单项方法public voidope nMen ultemActio nPeformed(Actio nEve nt evt{ try { file = n ull; int returnVal = filechooser.showOpenDialog(this; if(returnVal ==JFileChooser.APPROVE_OPTION{ file = filechooser.getSelectedFile(; FileReader fr = new FileReader(file; int len = (in tfile .len gth(; char[] buffer = new char[le n]; fr.read(buffer,0,le n; fr.close(; conten t.setText (newString(buffer; } } catch(Exception e{ e.printStackTrace(; } } // 定义退出菜单项方法public void exitMe nultem_actio nPeformed(Actio nEve nte{ if(!("".equals(co nte nt.getText({ Object]] optio ns = {" 是(Y "," 否(N "," 取消"}; int s = JOptionPane.showOptionDialog(null,"文件的文字已经改变。
Java课程设计报告-计算器,输入输出流读取iris.txt文件,黄金卡,多线程动画,记事本
优劣。
知识点:掌握事件处理机制;掌握随机采样的方法;掌握图形用户界面设计;(注:采用图形用户方式设计)4、内容四:设计一个记事本,菜单中要求有文件,编辑,和帮助。
文件中有新建、打开、保存和退出;编辑中有剪切、复制和粘贴;帮助中显示开发人和版本信息。
知识点:掌握图形用户界面设计;掌握基本类的设计与菜单设计;掌握事件处理机制;掌握使用异常处理方法。
5、内容五:一个多线程的动画知识点:Java中线程的实现;线程的优先级、调度与同步;设计步骤:窗口布局设计设计线程类MainPanel类的设计实验效果为:程序功能:每点击一次“Start”按钮,就会在画面上出现一个新的小球。
这些小球按照一定的线路移动,而且小球的移动速度是相同的。
进制转换算法描述:用if语句判断选中的进制对应的选择框(默认选中的是十进制),并对该事件做对应的按钮处理,用变量length判断上次选中的是哪个进制的选择框,用来进行相互转换,然后进行运算。
假如是非十进制,则先转化成十进制,然后再转化成需要的进制。
内容二:用while循环对文件按行读取存放到字符型变量s里,只要s不为null则循环,在循环里加一个计数器count,用于记录文件的行数用于求平均值,每行按分隔符\t进行行的分割,把每行的第i个元素累加到浮点型数组sum[i]里,读取完后在进行求平均值的运算。
最后打印出每列总和及每列平均值。
内容三:按钮界面:黄金卡中要设计到相应的一个开始游戏的按钮和一个重新开始的按钮,我采用的是JButton,分别建立的一个有“开始”和“重玩”文字的按钮。
文本框设计:用JTextField来构建相应的文本框,用JTextField()来构建单行文本框,以满足程序的要求和图形设计。
颜色背景及字体的设定:JLabel 对象可以显示文本、图像或同时显示二者。
内容四:记事本设计图如下,前先要创建一个Jishiben的类继承JFrame类作为最底层的容器。
在构建Jishiben类时要初使化容器,初使化组件。
怎么运行用记事本写的java程序
怎么运行用记事本写的 java程序
7.坏境设置好之后就可以回到我们的第四步了, 出现如图所示,表示编通过:
8.然后我们就可以查看我们的D盘多了一个java.class的文件,如图所示: 9.接下来在命令行输入 java 文件名(如我的也是java,起名可能有点小问题),如图所示,我们的程序就可以运行了!
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Dialog.setLocation(x, y);
Dialog.setResizable(false);
Dialog.setLayout(null);
Panel.setLayout(null);
OK.addActionListener(this);
Dialog.add(Normal);
Dialog.add(Selected);
Dialog.add(NFL);
Dialog.add(NBL);
Dialog.add(SFL);
Dialog.add(SBL);
Dialog.add(SBB);
Dialog.add(SFB);
NBB.setBounds(144, 40, 60, 22);
NFB.setBounds(144, 10, 60, 22);
NFL.setBounds(10, 10, 130, 22);
NBL.setBounds(10, 40, 130, 22);
SFL.setBounds(10, 70, 130, 22);
Dialog.add(NBB);
Dialog.add(NFB);
Dialog.add(OK);
Dialog.add(Cancel);
Dialog.add(Reset);
SBB.setBounds(144, 100, 60, 22);
SFB.setBounds(144, 70, 60, 22);
Selected.setBackground(SBC);
NFB.setBackground(NFC);
NBB.setBackground(NBC);
SFB.setBackground(SFC);
SBB.setBackground(SBC);
Dialog.setLayout(null);
SBL.setBounds(10, 100, 130, 22);
Normal.setBounds(220, 10, 174, 56);
Selected.setBounds(220, 66, 174, 56);
Reset.setBounds(10, 160, 74, 24);
OK.setBounds(236, 160, 74, 24);
NBB.addActionListener(this);
SFB.addActionListener(this);
SBB.addActionListener(this);
Reset.addActionListener(this);
OK.addActionListener(this);
Chooser=new ColorChooser(Dialog, x+65, y-15);
Normal.setEditable(false);
Normal.setFocusable(false);
Normal.setFont(new Font("新宋体", 0, 16));
Normal.setForeground(NFC);
public class AboutDialog implements ActionListener{
public JDialog Dialog;
public JButton OK,Icon;
public JLabel Name,Version,Author,Java;
public JPanel Panel;
NBB=new JButton("");
SFB=new JButton("");
SBB=new JButton("");
OK=new JButton("OK");
Cancel=new JButton("Cancel");
Reset=new JButton("Reset");
Name=new JLabel("Notepad");
Version=new JLabel("Version 1.0");
Java=new JLabel("JRE Version 6.0");
Author=new JLabel("*****");
Panel=new JPanel();
Version.setBounds(80, 27, 160, 20);
Author.setBounds(15, 70, 250, 20);
Java.setBounds(80, 44, 160, 20);
Icon.setBounds(16, 14, 48, 48);
}
public void actionPerformed(ActionEvent e) {
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
AboutDialog.java
package notepad;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
Dialog.setVisible(false);
}
}
ColorDialog.java
package notepad;
import java.awt.Color;
import ponent;
import java.awt.Font;
import java.awt.GridLayout;
Cancel.addActionListener(this);
}
public void setTextAreaColor(){
Normal.setForeground(NFB.getBackground());BB.getBackground());
SBL=new JLabel("Selected Background:");
Normal=new JTextArea("\n Normal 正常");
Selected=new JTextArea("\n Selected 选中 ");
NFB=new JButton("");
import java.awt.event.WindowListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public ColorDialog(JFrame notepad, int x, int y){
NFC=new Color(0,0,0);
NBC=new Color(249,249,251);
SFC=new Color(0,0,0);
SBC=new Color(191,207,223);
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowEvent;
Normal.setBackground(NBC);
Selected.setEditable(false);
Selected.setFocusable(false);
Selected.setFont(Normal.getFont());
Selected.setForeground(SFC);
Panel.add(Author);
Panel.add(Java);
Dialog.add(Panel);
Dialog.add(OK);
Panel.setBounds(0, 0, 280, 100);
OK.setBounds(180, 114, 72, 26);
Name.setBounds(80, 10, 160, 20);
Cancel.setBounds(320, 160, 74, 24);
Dialog.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
Dialog.addWindowListener(this);
NFB.addActionListener(this);
Dialog.setLocation(x, y);
Dialog.setSize(410, 220);
Dialog.setResizable(false);
Reset.setFocusable(false);
OK.setFocusable(false);