西农java实习四_界面设计.doc

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

ygxt89 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档