- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
.
.
信 息 工 程 学 院实验报告的内容与格式按任课教师的要求书写。
实验报告的内容与格式按任课教师的要求书写。
《Java语言程序设计》实验报告
学院:信息学院
姓名: pprp
学号:*********
成绩:
实习目标
(1)掌握Java的swing界面开发步骤:
1.生成JFrame子类作为界面;
2.设计中间容器,为中间容器设置布局;
3.添加组件;
4.为组件添加事件处理。
(2)熟悉使用JDK_API进行软件开发。
实验过程
实验题1 Focus事件处理练习
实现如图1所示的布局方式
功能:(1)初始化的时候,文本框失去焦点,文本框内显示灰色字符串“密码/邮箱/手机号”,代表输入提示,如图1(a)所示;
图1(a) 初始化时,文本框失去焦点
(2)在图1(a)状态下点击文本框,文本框得到焦点,则光标在文本框最左端显示,代表可以输入字符串,如图1(b)所示;
图1(b) 文本框得到焦点
(3)若文本框内有已经输入字符串(黑色字符),则无论其失去焦点或得到焦点,文本框内容不变,表示可以继续修改文本框内的字符串,如图1(c)所示。若此时清空文本框内容,点击“确定”,则回到图1(a)状态。
图1(c) 修改文本框内的字符
截图:
要求1: 初始化的时候,文本框失去焦点,文本框内显示灰色字符串“密码/邮箱/手机号”
要求2: 点击文本框,文本框得到焦点,则光标在文本框最左端显示,代表可以输入字符串
要求3: 若文本框内有已经输入字符串(黑色字符),则无论其失去焦点或得到焦点,文本框内容不变,表示可以继续修改文本框内的字符串,如图1(c)所示。若此时清空文本框内容,点击“确定”,则回到图1(a)状态。
代码:
总结及说明:
练习主要是Listener的使用,用到了两个Listener,一个是MouseListener,另一个是FocusListener。
其中用到一个函数叫requestFocus();这个函数尽量在setVisible(true)之后再调用。
MouseListener是用来在鼠标点击文本框以后进行清空处理的。
FocusListener是用来在文本框得到焦点后进行接收处理,失去焦点后设置为默认字段。
剩下的就是比较基础的界面的设置。
实验题 2 日历
编写一个程序,有一个窗口,该窗口为BorderLayout布局。窗口的中心添加一个Panel容器:pCenter,pCenter的布局是7行7列的GridLayout布局,pCenter的中放置49个标签,用来显示日历。窗口北面添加一个Panel容器pNorth,其布局是FlowLayout布局,pNorth放置两个按钮:nextMonth和previousMonth按钮,单击nextMonth,可以显示当前月的下一个月的日历;单击previousMonth按钮,可以显示当前月的上一个月的日历。窗口的南面添加一个Panel容器pSouth,其布局是FlowLayout布局,pSouth中放置一个标签用来显示一些信息。请完成界面设计和相关功能。运行结果如图2所示。
图2 日历效果图
截图:
代码:
具体函数:
总结及分析:
主要分为两个模块:
第一个模块是进行部件的添加和处理,
第二个模块是日历内容的设置
第三个模块是对按钮进行响应
用到了Calendar这个类进行计算和处理,为了使界面更美观,增加了UIManager.setLookAndFeel(com.sun.java.swing.plaf.windows.WindowsLookAndFeel);使按键如同window的感觉,并设置了背景,凹陷。
遇到的主要的问题和注意的点:
首先出现过面板的设计问题,主要分为上中下三个部分,其中Center这部分在老师的建议下改成了上下两个部分,分别显示星期和日期,星期选用JButton,日期选择JLabel。
出现了日期的列数不匹配的问题,显示5列或者6列,而不是正常的7列。最后通过对GridLayout的调整还有for循环的调整,解决了这个问题。
遇到了这样的错误,在上下月翻页的时候,发现会出现到30或者31日然后又下降从28或29开始递增至30的情况,而代码中不可能出现递减。在仔细考虑以后发现,之前月份没有清楚,而下个月份没有覆盖完全导致了这个问题的发生。解决办法是加了一个clearCalendarPane函数,在每次调用前都提前清除一下就可以解决这个问题了。
这个代码组织不够清晰,不够清楚明白,在之后的练习中应该注意。
实验题 3 计算器
(1)必做内容:编写一个计算器的程序,主界面由多个按钮组件、一个文本框构成。运行结果如下图所示(二者选一即可):
截图:
代码:
总结:
完成的计算很有限,要求只能进行双目运算,不能进行连续的计算。
主要用的是一个A
文档评论(0)