J2ME的手机记事本的设计与实现

合集下载

J2ME技术在手机程序设计中的应用

J2ME技术在手机程序设计中的应用

Move the network game according to the technical cellularphone of J2ME目录1.综述 (1)2 嵌入式技术简介 (2)2.1嵌入式应用技术蓬勃发展 (2)2.2嵌入式技术蓬勃发展的诸多原因 (3)2.3嵌入式软件技术面临挑战 (3)2.3.1 嵌入式应用软件的开发需要强大的开发工具和操作系统的支持 (3)2.3.2 网成为必然趋势 (4)2.3.3 支持小型电子设备实现小尺寸、微功耗和低成本 (4)2.3.4 提供精巧的多媒体人机界面 (4)2.4影响嵌入式技术未来的若干软件新技术 (4)2.4.1 日趋流行的行业性开放系统和备受青睐的自由软件技术 (4)2.4.2 无线网络操作系统初见端倪 (5)2.4.3 IP构件库技术正在造就一个新兴的软件行业 (5)2.4.4 J2ME技术将对嵌入式软件的发展产生深远影响 (5)2.5嵌入式软件的特点 (6)2.5.1 软件要求固态化存储 (6)2.5.2 软件代码高质量、高可靠性 (6)2.5.3 系统软件(OS)的高实时性是基本要求 (6)2.5.4 多任务操作系统是知识集成的平台和走向工业标准化道路的基础 (6)2.6嵌入式技术美好的未来 (6)3 J2ME技术简介 (8)3.1J2ME技术和嵌入式技术 (8)3.2J2ME特点 (8)3.2.1 J2ME特点 (8)3.2.2 J2ME被定位到两类产品(高级层次中) (9)3.3J2ME三层体系结构(如图3-2) (9)3.4J AVA技术版本(J2ME在J AVA技术中的定位) (10)总结 (14)错误!未找到引用源。

............................. 错误!未定义书签。

参考文献. (15)声明 (16)致谢 (17)附录1 游戏说明书 (18)1.综述随着全球信息高速公路的不断完善,电子设备日新月异,而嵌入于各类电子设备的嵌入式硬件、系统和应用软件都成为了各类设备的核心部分。

J2ME程序设计实例教程(第01章)

J2ME程序设计实例教程(第01章)


打包MIDP应用程序,并发布到Web服务器 打包 应用程序,并发布到 服务器 应用程序 启动模拟器,安装 启动模拟器,安装MIDP应用程序 应用程序
(教材 ,例子 教材P6,例子1-1) )
1.4 MIDP应用程序 应用程序
MIDP应用程序是由若干个类所组成的,其中必须有 应用程序是由若干个类所组成的, 应用程序是由若干个类所组成的 一个类继承来自javax.microedition.midlet包中 一个类继承来自 包中 的抽象类MIDlet,这个类被称为应用程序的主类。运 的抽象类 ,这个类被称为应用程序的主类。 行时,移动信息设备上预置的Java应用管理器(Java 应用管理器( 行时,移动信息设备上预置的 应用管理器 Application Manager, JAM)负责创建主类 ) 的子类) (MIDlet的子类)的实例对象。 的子类 的实例对象。
图1-4 J2ME WTK目录结构
1.3 J2ME无线工具包 无线工具包——开发 开发MIDP程序 无线工具包 开发 程序
MIDP应用程序的开发过程: 应用程序的开发过程: 应用程序的开发过程
1.创建新项目 2.编写 编写MIDP应用程序 应用程序 3.编译、预校验 编译、 4.在模拟器上运行、调试 在模拟器上运行、 5.打包、发布应用程序 打包、
MIDlet套件(MIDlet Suite)是MIDP应用程序的集合,被 套件( 应用程序的集合, 套件 ) 应用程序的集合 封装成一个Jar文件。在这个文件中包含下面三部分内容。 文件。 封装成一个 文件 在这个文件中包含下面三部分内容。 实现MIDP应用程序的类文件,在一个MIDlet套件中可以有 应用程序的类文件,在一个 实现 应用程序的类文件 套件中可以有 多个MIDlet存在。 多个 存在。 存在 MIDlet所需要的资源文件,例如,图标、声音等等。 所需要的资源文件,例如,图标、声音等等。 所需要的资源文件 Jar清单文件 清单文件——MANIFEST.MF,用于描述 文件的内容。 清单文件 ,用于描述Jar文件的内容。 文件的内容 每个MIDlet套件都有一个对应的 套件都有一个对应的JAD(Java Application 每个 套件都有一个对应的 ( Descriptor,Java应用描述器)文件,用来描述 应用描述器) , 应用描述器 文件,用来描述MIDlet套件 套件 的信息。 的信息。

J2ME手机通讯录 设计报告

J2ME手机通讯录 设计报告

南京晓庄学院J2ME移动应用开发课程设计报告手机通讯录所在院(系):行知学院学号:学生姓名:年级专业:08级计算机指导教师:李青老师提交日期:2011年5月目录一绪论 (3)1.1系统背景 (3)二设计目的 (4)三设计原理 (5)3.1开发工具与主要技术 (5)3.2设计方案的论证 (5)3.3系统功能结构图 (6)四系统功能设计与实现 (7)4.2查看联系人 (8)4.3修改联系人 (9)4.4发送短信 (10)五总结 (12)一绪论1.1系统背景随着3G时代的到来,移动应用开发迎来空前的发展机遇。

基于Java平台的J2ME移动开发技术以其跨平台性,完善的面向对象的编程能力、抢答的内置安全体系模型及企业应用无缝结合能力,赢得了广大移动应用开发人员的青睐,听且在目前移动应用恐惧爱发领域占领了很大的市场,成为最受欢迎的移动开发技术。

Eclipse是一个开放源代码的、基于Java的可扩展平台。

Eclipse的出现为Java移动开发者提供了免费使用Java继承开发环境的机会。

尤其是一些支持J2ME开发的免费插件如EclipseME的出现,使得Eclipse成为众多J2ME开发人员首选的开发平台。

二设计目的通过这次的课程设计,能使我了解:1.通过课程设计使学生学会综合运用基础知识和专业理论知识,进行设计方法和步骤2.程序架构分析3.培养学生善于运用设计绘图,专业绘图以及编写设计文件等基本技能。

4.提高学生分析问题,解决问题,独立工作的能力。

5.通过课程设计全面考察,了解学生在校期间的学习质量,从而发现教学中存在的问题,为进一步进行教学改革提供依据。

6.高层用户界面的应用。

三设计原理3.1开发工具与主要技术游戏程序开发工具有很多,在不同游戏平台上有不同的开发工具。

在手机上,可以用目前流性的软件开发工具有JA V A等。

由于手机操作系统的普及和其强大的多媒体功能,越来越多的手机支持JA V A。

3.2设计方案的论证Eclipse是当今最流行的Java开发IDE之一,它是一个开发源代码的、基于Java的可扩展开发平台,体内为它具有良好的可扩展性。

基于J2ME手机记事本的设计与实现

基于J2ME手机记事本的设计与实现

基于J2ME手机记事本的设计与实现
隋国政
【期刊名称】《今日科苑》
【年(卷),期】2011(000)020
【摘要】介绍了手机记事本软件开发方法以及J2ME中手机开发的各种技术如MIDlet、RMS等;其中对记事本中的功能模块进行了详细的描述,文中介绍的记事本软件是在NetBeans平台下采用J2ME进行开发的。

【总页数】2页(P177-178)
【作者】隋国政
【作者单位】山东青年政治学院,山东济南250014
【正文语种】中文
【中图分类】TN929.53
【相关文献】
1.基于J2ME的手机网络游戏的设计与实现 [J], 刘超;任利峰
2.基于J2ME的手机实时监控系统的设计与实现 [J], 刘芳
3.基于J2ME的手机六子炮棋游戏的设计与实现 [J], 段艳明
4.基于J2ME的Java手机软件 --足球彩票手机投注系统的设计与实现 [J], 张全伙;许向锋
5.基于Windows Mobile手机智能记事本的设计与实现 [J], 蒋松云
因版权原因,仅展示原文概要,查看原文内容请购买。

基于J2ME的手机软件设计与应用

基于J2ME的手机软件设计与应用

Op n ae 1vl 。其 l ,作 为得 到 S n公 司 官 e B s ̄0 i等 f J u
方大力支持的项 日,IV 3提供 了丰富的组件 , A U1、 采用与桌面环境 中, 泛应用的 S n 类似的设计 wig
接受。
作者简介 :陈军 (9 6一 ,男 ,江苏连 云港人 , 17 ) 连云港职业技术学院讲师、计算机调试技师。计
动 画效果、 Ri c h控件 、3)源自成、 P itr 1 ane、模
式 对 话 框 、I8 / tN等 。 为开 放 源 代 码项 f, 1N I O 作 _ j
S n公 司 于 20 年 发 布 了 L UI 的 源代 码 以及 u 08 w T
支持。针对这一 问题 ,本文在企面分析 目前常用 的手机程序界面设计方法的基础上,结合实例系
关键 词 :手 机软 件 ; 开发 ;设 计 ; 应 用
中 图分 类 号 : G72 1
文 献标 识 码 : A
文 章编 号 : 17 -4 6 (0 00 一O 8 一 O 3 5 42 1)6 O6 3 6
1 .引言
思想 ,易 学 易 用 , 具有 很 大 的发 展 潜 力 。 3 L Il 简 介 .W Iq 、 J L U T ( ih e h T okt 是 一 个 轻 W Lg t i t I oli I W g U ) ‘ 量 级 的 。 M EU : 1 2 I【具包 , 似 S n 类 wig的 MV 架 C 构 ,支 持 多 种 布局 、 皮肤 更 换 、字 体 、 触 摸 屏 、
设计- 套可重用的用户界面组件库 ,再针对多种 一 典型的手机环境完成具体的实现和移植 ,最后在 实际项 日的开发 巾使用这些组件库 来实现所需要 的用户界面。 日前比较有影响 的开源 J ME GU 2 I

JAVA0011基于j2me手机日程表软件设计2

JAVA0011基于j2me手机日程表软件设计2

摘要J2ME(Java 2 Micro Edition) 是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术。

它定位在消费性电子产品的应用上,对设备的智能化、多样化,提供了革命性的解决方案,并因其“Write Once, run anywhere”的Java特性而提高开发的效率。

随着手机的日益普及、Java功能在移动设备上的实现,Java应用程序产生的手机增值服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。

本论文着眼于J2ME技术的应用,开发一款程序——个人日程管理软件。

制作经典软件到手机上来,为更流行的硬件平台提供应用软件。

本论文介绍了使用WTK2制作软件的方法及本程序的结构分析和具体功能的实现。

关键字:J2ME,移动电话,Java,个人日程程序目录摘要 (I)ABSTRACT .............................................................................. 错误!未定义书签。

目录............................................................................................................................. I I 第一章绪论............................................................................. 错误!未定义书签。

1.1 Java技术..................................................................... 错误!未定义书签。

1.2 国内现状.................................................................... 错误!未定义书签。

J2ME技术的手机应用软件开发技术 精品

基于J2ME技术的手机应用软件开发技术一、引言随着通讯技术的发展,手机越来越普及,现在的手机的数量已经远远的超过电脑的用户量,同时用户不再满足厂商固化在手机内的几个程序的功能,希望手机成为一个移动通信的终端,能下载程序并运行,实现各种只有在PC机上才能实现的功能。

手机游戏产业在全球已经占有很大的市场,随着无线互联网时代的来临,开发手机中的应用程序已成为一种时尚,市场潜力十分巨大。

二、常见的手机应用软件开发技术开发手机软件的技术有多种,常见的有以下几种:(1)WAP论坛创立的WAP (Wireless Application Protocol)技术。

(2)日本NTT Doo公司1999年2月推出的IMode技术。

(3)韩国市场使用较广GVM技术。

(4)北美的Qualm (高通)公司和中国联通共同推出的BREW (Binary Runtlme Environlnent for Wireless)技术。

(5)SUN公司推出了J2ME (Java 2 Platform Micro Edition,Java2微型版)技术。

其中J2ME一经推出。

得到了越来越多的厂商、开发人员和用户的支持,正迅速成为最为流行的手机应用软件开发技术。

J2ME开发平台与其他技术相比,具有以下特点:(1)平台无关性。

利用Java的“write once,run anywhere”特性,我们可以真正达到程序只要写一次,拿到任何平台上都可以执行(当然前提是必须要该手机厂商提供符合规格的Java Virtual Machine才行)。

(2)面向对象的编程技术。

支持面向对象的编程技术,提供丰富的类库,在CLDC/MIDP中提供了与网络相关API函数。

(3)安全性。

Java语言在原始设计上就将安全性的因考虑进去,由于Java语言不支持指针的使用,在Java程序内访问某一块内存的数据,不会因为下载了一个错误的Java应用程序而对设备或网络造成危害。

J2ME手机游戏开发技术与实践课程设计 (2)

J2ME手机游戏开发技术与实践课程设计一、课程设计目标本课程设计旨在培养学生对J2ME(Java 2 Mobile Edition)手机游戏开发技术的理解与实践能力,帮助学生了解J2ME游戏开发的基本理论和技术要点,掌握J2ME游戏开发所需的工具和平台环境,并能独立完成一个小型的J2ME手机游戏开发项目。

二、课程设计内容1. J2ME介绍本课程将首先介绍J2ME的基本概念和特点,分析其在手机游戏开发中的优势和不足。

2. J2ME游戏开发工具本课程将介绍J2ME游戏开发所需的工具和平台环境,包括Eclipse集成开发环境、J2ME Wireless Tool Kit、Java SDK、Java ME Platform SDK等,让学生熟练掌握J2ME游戏开发所需的开发工具和平台环境。

3. J2ME游戏开发基础本课程将讲解J2ME游戏开发的基础知识,包括如何创建一个J2ME游戏工程、如何实现游戏的图像显示、声音播放、触屏控制等功能的实现。

4. J2ME游戏实例分析本课程将分析一些经典的J2ME游戏实例,帮助学生理解J2ME游戏开发的实现方法和技巧,同时学生将根据这些实例进行一些小型游戏的开发。

5. J2ME游戏上线和营销课程最后将介绍移动设备游戏的上线和营销策略,包括如何通过各种渠道发布和推广自己的J2ME游戏,为学生未来从事移动游戏开发,为自己的游戏营销提供参考和指导。

三、课程设计任务完成一个小型的J2ME手机游戏开发项目,完成以下步骤:1.案例选取:根据个人兴趣选定一款适合J2ME平台的游戏作为本次课程设计的开发对象。

2.游戏设计:使用MindManager或其他思维导图工具,完成游戏设计文档(GDD),包括游戏说明、界面设计、关卡设计、声音和特效设计、游戏规则等内容。

3.开始开发:在Eclipse中创建一个新的J2ME工程,按照游戏设计文档中的设计实现游戏主体框架,并逐步实现游戏的各种功能。

4.测试调试:完成游戏基本功能开发后,需要进行测试和调试,确保游戏运行正常,没有不良后果和内存泄露等问题。

第5章 J2ME移动软件程序设计

StringBuffer charLine = new StringBuffer();
try {
int lastID = rs.getNextRecordID();
byte[] data = new byte[100];
data [2 ] =(byte)((i >>8)&0xff);
data [3 ] =(byte)(i &0xff);
System.out.println("record"+rs.addRecord(data,0,4)+"is added..");
// 删除旧的RecordStore
try {
RecordStore.deleteRecordStore( DBNAME );
}
catch( Exception e ){
// 忽略出现的错误
import javax.microedition.rms.*;
public class RecordAdd extends MIDlet {
public RecordAdd(){}
public void startApp()throws MIDletStateChangeException{
notifyDestroyed();
}
public void pauseApp(){}
public void destroyApp(boolean unconditional){}
}
//5.2.3 修改一条记录
import java.io.*;
import javax.microedition.midlet.*;

J2ME平台下文本阅读器的实现

J2ME平台下文本阅读器的实现摘要本文利用J2ME技术开发了一个文本阅读器,实现了手机对文本文件的显示,给出了该程序的实现代码,并对其关键技术进行了详细阐述。

关键字J2ME 文本阅读器 Java 手机The Implementation of Text File Reader Based on J2MEAbstractThe paper presents a text file reader based on J2ME, make it possible that text file is displayed in mobile. It also gives the detail code of the application and illustrates its key technology.Key WordsJ2ME text file reader Java Mobile0引言随着通讯技术的发展及手机的普及 ,人们正在不断地给手机增加新的功能 ,其中 ,使手机实现一般只有 PC机才具有的功能——下载各种程序并运行 ,是目前手机发展的一个重要方向。

为此 ,人们提出了各种各样的解决方案 ,其中基于 JAVA的 J2 ME方案无疑是最引人注目的。

本文通过J2ME开发一个文本阅读器,该程序可下载到手机上,随时随地的进行阅读,这样就可以通过这种方式开发一些学习软件,使手机用户可有一个随身学习的工具书。

由于J2ME不可以对手机中的文件进行读写,所以在开发本程序时,只能在程序打包时把文本文件作为资源文件加入到J2ME发布程序中。

如果想读写手机上的文件,则要使用各手机商家提供的特定开发平台和专用的类来开发,下面就文本阅读器的关键技术进行说明。

1 J2ME文本阅读器中的文本格式J2ME中文本文件的格式,为了便于程序的开发和在运行中的读写处理,对要处理的文本文件要进行一定格式的整理。

本程序中的文本要求用纯文本即可,每章为一个独立的文件,每一章中均可为多段,在文本中加入的空格和各种符号都可在阅读时如实的显示出来。

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

j2me 手机记事本2011年01月03日15:35import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.Calendar;import java.util.Enumeration;import javax.microedition.io.Connector;import javax.microedition.io.file.FileConnection;import mand;import mandListener;import javax.microedition.lcdui.Display;import javax.microedition.lcdui.Displayable;import javax.microedition.lcdui.List;import javax.microedition.lcdui.TextBox;import javax.microedition.lcdui.TextField;import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;public class notebook extends MIDlet implements CommandListener{private Display dis;//////// 主窗口///////private TextBox maintbx= new TextBox("","",1024,TextField.ANY);private Command cmdnewfilename = new Command("新建文件",Command.SCREEN,3); private Command cmdopen =new Command("打开",Command.SCREEN,2);private Command cmdsave =new Command("保存",Command.SCREEN,1);private Command cmdexit =new Command("退出",Command.SCREEN,4);private Command cmdback =new Command("删除",Command.SCREEN,3);////////////新建文件输入文件名窗口//////////////private TextBox tbxinputfilename =new TextBox("请输入文件名:","",256,TextField.ANY); private Command cmdnewfilenameok = new Command("确定",Command.SCREEN,1);////////////显示文件名窗口///////////////private List listfilename = new List("文件列表",List.IMPLICIT);///////// 其他///////private FileConnection fconn;private String filename;private String initdir ="file:///root1/dayrecord/";private String date;public notebook() {dis =Display.getDisplay(this);/////////////初始化主窗口/////////////////maintbx.addCommand(cmdnewfilename);maintbx.addCommand(cmdopen);maintbx.addCommand(cmdsave);maintbx.addCommand(cmdback);maintbx.addCommand(cmdexit);maintbx.setCommandListener(this);///////////////输入文件名窗口初始化///////////////////tbxinputfilename.addCommand(cmdnewfilenameok);tbxinputfilename.setCommandListener(this);/////////显示文件名初始化///////////listfilename.setCommandListener(this);//////////////////////dis.setCurrent(maintbx);date =this.getdate();}protected void destroyApp(boolean arg0) throws MIDletStateChangeException { }protected void pauseApp() {}protected void startApp() throws MIDletStateChangeException {}public void commandAction(Command c, Displayable d){if (c==cmdexit)this.notifyDestroyed();////////////显示新建文件名的窗口////////////else if (c==cmdnewfilename){filename = initdir + date + ".txt";tbxinputfilename.setString(date + ".txt");dis.setCurrent(tbxinputfilename);}//////////新建文件//////////else if (c==cmdnewfilenameok){filename = initdir + tbxinputfilename.getString().trim();try{fconn=(FileConnection) Connector.open(filename,Connector.WRITE);fconn.create();fconn.close();maintbx.setString(date);maintbx.setTitle(tbxinputfilename.getString().trim());}catch (IOException ioe){}dis.setCurrent(maintbx);}///////////编辑文本时删除字符//////////else if (c==cmdback){int position = maintbx.getCaretPosition();maintbx.delete(position-1, 1);}///////////显示文件名///////////else if (c==cmdopen){dis.setCurrent(listfilename);listfilename.setCommandListener(this);listfilename.deleteAll();listfile(initdir);}//////////显示文件内容/////////else if (c==listfilename.SELECT_COMMAND){int i=listfilename.getSelectedIndex();String str=listfilename.getString(i);dis.setCurrent(maintbx);filename=initdir + str;try{fconn=(FileConnection) Connector.open(filename,Connector.READ);InputStream in =fconn.openInputStream();int bytesize = (int) fconn.fileSize();if (bytesize > 1024 ){maintbx.setMaxSize(bytesize);}byte[] b=new byte[bytesize];in.read(b);String s= new String(b,this.getcharset(b)).trim();maintbx.setTitle(str);maintbx.setString(s);in.close();fconn.close();}catch (IOException ioe){}}/////////////保存文件////////////////else if(c==cmdsave){try{fconn=(FileConnection) Connector.open(filename,Connector.READ_WRITE);if (fconn.exists()){ fconn.delete();fconn.create();}OutputStream out =fconn.openOutputStream();String sr = maintbx.getString().trim();int wlength = sr.getBytes("GBK").length;byte [] bw= new byte[wlength];bw=sr.getBytes("GBK");out.write(bw);out.close();fconn.close();}catch (IOException ioe){}}}///////////// 函数区///////////////////////判断文件的字符集////////////public String getcharset(byte[] b){String charset ="GBK";if (b[0] == (byte) 0xFF && b[1] == (byte) 0xFE)charset = "UTF-16LE";else if (b[0] == (byte) 0xFE && b[1] == (byte) 0xFF)charset = "UTF-16BE";else if (b[0] == (byte) 0xEF && b[1] == (byte) 0xBB && b[2] == (byte) 0xBF) charset = "UTF-8";return charset;}////////////取得当前日期//////////public String getdate(){Calendar cal = Calendar.getInstance();int year = cal.get(Calendar.YEAR);int month = cal.get(Calendar.MONTH);int day = cal.get(Calendar.DA TE);int week = cal.get(Calendar.DAY_OF_WEEK);String str = year + "年" + (month+1) + "月" + day + "日" + "星期" + (week-1);return str;}//////////把目录下的文件名添加到列表框///////////public void listfile(String pathname){String str = null;try{fconn = (FileConnection) Connector.open(pathname);Enumeration e1 = fconn.list();while(e1.hasMoreElements()){str=e1.nextElement().toString();listfilename.append(str, null);}fconn.close();}catch (IOException ioe){}}///////////遍历目录////////////public void listfilefull(String pathname){String str = null;try{fconn = (FileConnection) Connector.open(pathname);Enumeration e1 = fconn.list();while(e1.hasMoreElements()){str=e1.nextElement().toString();if (str.endsWith("/")){listfilename.append(pathname + str, null);listfilefull(pathname+str);}else{if (str.endsWith(".txt"))listfilename.append(str, null);}}fconn.close();}catch (IOException ioe){}}}import java.io.*;import java.awt.*;import javax.swing.*;import java.util.Date;import java.awt.event.*;import java.util.Calendar;import java.text.SimpleDateFormat;public class HDG extends JFrame{JMenuBar menub=new JMenuBar();JTextArea text=new JTextArea();JMenu files=new JMenu("文件(F)");JMenu edit=new JMenu("编辑(E)");JMenu formats=new JMenu("格式(O)");JMenu help=new JMenu("帮助(H)");JMenuItem newFile=new JMenuItem("新建(N)");JMenuItem open=new JMenuItem("打开(O)...");JMenuItem save=new JMenuItem("保存(S)");JMenuItem saveAs=new JMenuItem("另存为(A)...");JMenuItem exit=new JMenuItem("退出(X)");JMenuItem cut=new JMenuItem("剪切(T)");JMenuItem copy=new JMenuItem("复制(C)");JMenuItem paste=new JMenuItem("粘贴(P)");JMenuItem find = new JMenuItem("查找(F)...");JMenuItem findNext = new JMenuItem("查找下一个(N)");JMenuItem replace = new JMenuItem("替换(R)...");JMenuItem selectAll=new JMenuItem("全选(A)");JMenuItem timeDate=new JMenuItem("时间/日期(D)");JCheckBoxMenuItem lineWrap=new JCheckBoxMenuItem("自动换行(M)");JMenuItem fonts=new JMenuItem("字体(F)...");JMenuItem color = new JMenuItem("字体颜色(C)...");JMenuItem about=new JMenuItem("关于记事本(A)");JPopupMenu popupMenu = new JPopupMenu();JMenuItem MenuMouseCut = new JMenuItem("剪切(T)");JMenuItem MenuMouseCopy = new JMenuItem("复制(C)");JMenuItem MenuMousePaste = new JMenuItem("粘贴(P)");JMenuItem MenuMouseselectAll = new JMenuItem("全选(A)");JFrame th=this;String name;String openedPath=null;boolean opened=false;boolean reworked=false;HDG(String name){super(name);=name;int x,y;Dimension size=Toolkit.getDefaultToolkit().getScreenSize();x=(size.width-600)/2;y=(size.height-400)/2;setSize(600,400);setLocation(x,y);setMinimumSize(new Dimension(250,150));setDefaultCloseOperation(EXIT_ON_CLOSE);}void init(){files.setMnemonic('F');edit.setMnemonic('E');formats.setMnemonic('O');help.setMnemonic('H');newFile.setMnemonic('N');open.setMnemonic('O');save.setMnemonic('S');saveAs.setMnemonic('A');exit.setMnemonic('X');cut.setMnemonic('T');copy.setMnemonic('C');paste.setMnemonic('P');find.setMnemonic('F');findNext.setMnemonic('N');replace.setMnemonic('R');selectAll.setMnemonic('A');timeDate.setMnemonic('D');lineWrap.setMnemonic('M');fonts.setMnemonic('F');color.setMnemonic('C');about.setMnemonic('A');newFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MAS K));open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,InputEvent.CTRL_MASK));cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));selectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MAS K));timeDate.setAccelerator(KeyStroke.getKeyStroke("F5"));files.add(newFile);files.add(open);files.add(save);files.add(saveAs);files.addSeparator();files.add(exit);edit.addSeparator();edit.add(cut);edit.add(copy);edit.add(paste);edit.addSeparator();edit.add(find);edit.add(findNext);edit.add(replace);edit.addSeparator();edit.add(selectAll);edit.add(timeDate);formats.add(lineWrap);formats.add(fonts);formats.add(color);help.add(about);menub.add(files);menub.add(edit);menub.add(formats);menub.add(help);setJMenuBar(menub);getContentPane().add(new JScrollPane(text));popupMenu.add(MenuMouseCut); popupMenu.add(MenuMouseCopy); popupMenu.add(MenuMousePaste); popupMenu.add(MenuMousePaste); popupMenu.add(MenuMouseselectAll);Listen listen=new Listen();Listen1 listen1=new Listen1();newFile.addActionListener(listen);open.addActionListener(listen);save.addActionListener(listen);saveAs.addActionListener(listen);exit.addActionListener(listen);cut.addActionListener(listen);copy.addActionListener(listen);paste.addActionListener(listen);find.addActionListener(listen);findNext.addActionListener(listen);replace.addActionListener(listen);selectAll.addActionListener(listen);timeDate.addActionListener(listen);lineWrap.addActionListener(listen);fonts.addActionListener(listen);color.addActionListener(listen);about.addActionListener(listen);open.addActionListener(listen1);save.addActionListener(listen1);saveAs.addActionListener(listen1);find.addActionListener(listen1);findNext.addActionListener(listen1);replace.addActionListener(listen1);fonts.addActionListener(listen1);text.addMouseListener(new MouseAdapter(){public void mousePressed(MouseEvent e){checkForTriggerEvent(e);} public void mouseReleased(MouseEvent e){checkForTriggerEvent(e);} private void checkForTriggerEvent(MouseEvent e){if(e.isPopupTrigger()){popupMenu.show(e.getComponent(),e.getX(),e.getY());}}});MenuMouseCut.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){text.cut();}});MenuMouseCopy.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){text.copy();}});MenuMousePaste.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){text.paste();}});MenuMouseselectAll.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){text.selectAll();}});}class Listen implements ActionListener{public void actionPerformed(ActionEvent e){Object source=e.getSource();if(source==newFile){text.setText("");th.setTitle(name);openedPath=null;opened=false;}else if(source==exit){System.exit(0);}else if(source==selectAll)text.selectAll();else if(source==cut)text.cut();else if(source==copy)text.copy();else if(source==paste)text.paste();else if(source==lineWrap)text.setLineWrap(!text.getLineWrap());else if(source==about){JFrame about = new JFrame("记事本");JLabel label1 = new JLabel("自己编写的记事本");JLabel label2 = new JLabel("作者:黄德贵");JLabel label3 = new JLabel("电子邮箱:214783803@");GridBagLayout layout = new GridBagLayout();about.setLayout(layout);GridBagConstraints n1 = new GridBagConstraints();n1.gridx = 0;n1.gridy = 0;n1.gridwidth = 10;n1.gridheight= 10;n1.anchor=GridBagConstraints.WEST;GridBagConstraints n2 = new GridBagConstraints();n2.gridx = 0;n2.gridy = 15;n2.gridwidth = 10;n2.gridheight= 10;n2.anchor=GridBagConstraints.WEST;GridBagConstraints n3 = new GridBagConstraints();n3.gridx = 0;n3.gridy = 25;n3.gridwidth = 10;n3.gridheight= 10;n3.anchor=GridBagConstraints.WEST;layout.setConstraints(label1,n1);layout.setConstraints(label2,n2);layout.setConstraints(label3,n3);about.add(label1);about.add(label2);about.add(label3);about.setSize(200,100);about.setLocation(300,200);about.setVisible(true);about.setResizable(false);}else if(source==timeDate){Date nowTime=new Date();SimpleDateFormat times=new SimpleDateFormat("yyyy年MM月dd日HH:mm");text.insert(times.format(nowTime),text.getCaretPosition());}else if(source==color){Color color=JColorChooser.showDialog(text, "选择颜色", Color.BLACK);text.setForeground(color);}}}class Listen1 implements ActionListener{public void actionPerformed(ActionEvent e){Object source=e.getSource();if(source==open){FileDialog openFile=new FileDialog(th,"打开文件...",FileDialog.LOAD);openFile.setVisible(true);String filePath=openFile.getDirectory()+openFile.getFile();try{FileInputStream fis=new FileInputStream(filePath);byte [] content=new byte[fis.available()];fis.read(content);text.setText(new String(content));text.setCaretPosition(0);if(openFile.getFile()!=null){th.setTitle(openFile.getFile()+name);openedPath=filePath;opened=true;}fis.close();}catch(Exception ex){ex.printStackTrace();}opened=true;}else if(source==save||source==saveAs){String savePath=openedPath;if(savePath==null||source==saveAs){FileDialog saveFile=new FileDialog(th,"保存文件...",FileDialog.SA VE);saveFile.setVisible(true);savePath=saveFile.getDirectory()+saveFile.getFile();}try{FileOutputStream fos=new FileOutputStream(savePath);fos.write(text.getText().getBytes());fos.close();}catch(Exception ex){ex.printStackTrace();}if(source==save)openedPath=savePath;}else if(source==find||source==findNext){JFrame find = new JFrame("查找");JLabel label = new JLabel("查找内容");final JTextField text1 = new JTextField(10);JButton button = new JButton("查找");find.setLayout(new FlowLayout());find.add(label);find.add(text1);find.add(button);find.setSize(300,90);find.setLocation(300,200);find.setVisible(true);find.setResizable(false);button.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){String src=text1.getText();String desc=text.getText();if(desc.indexOf(src)==-1){JFrame result = new JFrame("查找失败");JLabel label= new JLabel("未找到查询结果");result.add(label);result.setSize(300,60);result.setLocation(300,120);result.setVisible(true);result.setResizable(false);}else{ int mark=0;int start=desc.indexOf(src,mark);mark=start+1;if(mark!=0){text.setSelectionStart(start);text.setSelectionEnd(start+src.length());}}}});}else if(source==replace){JFrame replace = new JFrame("替换");JLabel label1 = new JLabel("查找内容:");JLabel label2 = new JLabel(" 替换为:");final JTextField text1 = new JTextField(10);final JTextField text2 = new JTextField(10);JButton button1 = new JButton("替换");JButton button2 = new JButton("全部替换");JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();p1.add(label1);p1.add(text1);p2.add(label2);p2.add(text2);p3.add(button1);p3.add(button2);replace.setLayout(new GridLayout(3,1));replace.add(p1);replace.add(p2);replace.add(p3);replace.setSize(300,120);replace.setLocation(300,200);replace.setVisible(true);replace.setResizable(false);button1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){String find = text1.getText();String replace = text2.getText();String desc = text.getText();if(desc.indexOf(find)==-1){JFrame result = new JFrame("查找失败");JLabel label= new JLabel("未找到查询结果");result.add(label);result.setSize(300,60);result.setLocation(300,120);result.setVisible(true);result.setResizable(false);}else{text.select(desc.indexOf(find),desc.indexOf(find)+find.length());text.replaceSelection(replace);}}});button2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){String find = text1.getText();String replace = text2.getText();String desc = text.getText();if(desc.indexOf(find)==-1){JFrame result = new JFrame("查找失败");JLabel label= new JLabel("未找到查询结果");result.add(label);result.setSize(300,60);result.setLocation(300,120);result.setVisible(true);result.setResizable(false);}else{text.setText(text.getText().replaceAll(find,replace));}}});}else if(source==fonts){JTextArea textArea=new JTextArea();JButton ok=new JButton();JButton cancel=new JButton();JComboBox fontName=new JComboBox();JComboBox fontSize=new JComboBox();JComboBox fontStyle=new JComboBox();String[] font = {"宋体" , "黑体" , "Arial","BatangChe","ComicSansMS","Times","Serif","Bitstream Charter","Courier","Luxi Mono","Nimbus Sans L","Utopia"};String[] size = {"8","10","12","14","16","18","20","22","24","26","28","32","36","48","72","96"};String[] style= {"PLAIN","BOLD","ITALIC"};JFrame jf = new JFrame("字体设置");}}}public static void main(String[] args){try{UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName());}catch (Exception e){System.err.println("不能使用该系统的外观和感觉:"+e);}String name=("我自己编写的记事本");HDG note=new HDG(name);note.init();note.setVisible(true);}}//08级软件班有人教我的/*import java.sql.*;public class Query {public static void main(String[] args) throws Exception{Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");Connectioncon=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;User=sa;Password=;DatabaseName=MyBase");Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery("select * from stu");while(rs.next()){System.out.print("学号:"+rs.getString("num")+"\t");System.out.println("姓名:"+rs.getString("name"));}rs.close();stmt.close();}}*/。

相关文档
最新文档