初学Java:仿写记事本

一、前言
  
  纸上得来终觉浅,绝知此事要躬行。
  自学Java已经有一段时间了,最近读完了李兴华老师的《Java开发实战经典》一书,受益匪浅。感觉其中的知识比较全面,实用性也比较高,为了方便将来的查阅,还特意做了12万字的学习笔记。
  实际上学校的Java课程已经于上个学期结束了,但感觉学到的东西很少。我们可以在教材中了解到几乎每一种布局管理器,但在期末考试之后,仍然不知道GridBagLayout的用法,甚至不知道怎样才能找到答案;老师可以在课堂上把JDBC的原理剖析得很深,但考核中永远只是最基础的继承、多态问题,于是就很少有老师这么做了;有的同学可以把所有运算符的优先级和所有基本类型的取值范围背得烂熟,但在实际编程中发现,这根本就用不上——蛋疼。
  也许编程就是这样,更多的要靠自己去探索、去实践。只有这样,才能明白什么是自己真正需要的东西,什么只是“知识点”而已。毕竟这是技术活儿,只有做出来真正有用的东西才叫实在。

  回想起来,似乎从来没有编写过什么非作业性质的Java程序,于是花了两个星期的时间,用Java仿写一个Windows系统中的记事本程序(notepad.exe)。算是小刀开刃吧。
  起初我也感觉这很简单——Windows中还有比记事本更简单的程序吗?但画了主界面、做好了菜单之后才发现,有些功能我竟然从来没有用过,比如编码、转到。而在一些简单功能上,要保证其逻辑正确性不是想象中那么简单的,为了一个使用中“鼠标一点就能看到的效果”往往要付出很多心思。每每遇到什么问题,就会去翻看JDK文档,百度搜索。有时候为了一个不容易看出来的死循环,会原地转几个小时的圈子。毕竟是零经验啊,还只是个孩子……
  我目前还没有看过什么源码,只是从使用的角度来用Java语言(主要就是Swing)模仿系统的记事本功能,甚至没有什么全局规划,想到一点就做一点。因而我的代码毫无质量可言,大量冗余,结构混乱,漏洞百出。但我相信作为一个初学者,这个小程序还是有些许纪念意义的。
  今天完成了程序中的主要功能,边边角角的还没有修饰,也基本没有进行过完整测试,算是一个Alpha版吧。在这里贴出来全部源代码,希望能有更多同样奋斗在Java学习道路上的同学对我批评指正,帮助我进步。
  
二、备注与说明
  
  1. 我发现一个小BUG,不知道大家注意过没有。打开Windows 7中的记事本,点击“格式”-“字体”,将大小选为“七号”,点击确定。再次打开字体后,大小会自动变成“八号”。无论这两项如何选择,实际生效的只有“八号”。这是为什么呢?
  2. 仿写的记事本程序,“帮助”菜单中的功能基本没弄,没什么用;而“文件”中的“页面设置”和“打印”功能也没有实现,目前还没有思绪。“编辑”菜单中不仅有“撤销”功能,还加入了“恢复”功能,Java提供的效果似乎比Windows记事本要好,只是速度太慢了。
  
三、源代码(更新于2012.3.22
  
  Find.java
  GoDialog.java
  MenuAbout.java
  MyCellRenderer.java
  NoteFont.java
  NoteMenu.java
  Notepad.java(主)
  OpenFile.java
  Replace.java
  SaveFile.java
  Status.java
  TextKeyListener.java
  TextMouseListener.java
  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值