基于java的图形用户界面及其应用内容摘要:

件可将消息发向所有被注册的事件监听器。 任何类型的事件都拥有一个对应的监听器 (接口)以及其他的实现类,它们对于作为事件源的组件来说是完全独立的。 授权型事件模式就是把对所引发事件的处理任务全部授权给这些独立的来进行处理 四 一个基于 JAVA 的图形用户界面实例的设计与实现 (一)运行环境配置 本程序的运行环境是 ,安装在 d 盘,其配置如下: ( 1) 如果你的操作系统是 Win 98,可以用记事本直接编辑 ,添加下面命令行: PATH=d:\\bin SET JAVA_HOME=d:\ SET CLASSPATH=.。 d:\\lib\。 d:\\lib\ 保存后,重新启动计算机,这样所添加的环境变量才会有效。 ( 2) 如果你的操作系统是 Win2020,那么按如下方式配置环境变量。 右键单击 我的电脑 ,在弹出菜单中选择 属性 → 系统特性 → 高级 → 环境变量 , 弹出环境变量对话框,就可以编辑系统的环境变量了。 添加 PATH、 JAVA_HOME 和 CLASSPATH 三个变量,变量值同上。 (二)程序设计 本程序是建立在 JAVA 图 形用户界面上,运用了 AWT 和 Swing 中大量的类,包括按钮,文本,菜单等部件类和框架,面板等容器类来说明 JAVA 中图形界面的实现。 本程序是模 8 拟 WINDOWS2020系统中开始菜单的,在程序中不在采用 WINDOWS2020系统的菜单形式,而是采用一个框架类对象 MyFrame 来实现。 如图 41 所示:( windows2020 中的开始菜单) 图 41 Windows2020系统 开始菜单 而在本程序中采用的框架方式来实现,而不在是如上的菜单。 如图 42: 图 42 菜单启动界面 在 本 界 面 选 项 中 , 包 括 proceduer,text,establish,search,help,carryout 分 别 与WINDOWS2020 系统的开始菜单对应。 为简单起见,本应用程序仅实现其中部分功能,在“ proceduer”中,只包括 start(启动), enclosure(附件),而在附件中,也只实现 计算器和计时器 功能。 对 text(文档) ,establish(设置) search(搜索) ,help(帮助) ,carryout(运行)等选项,只给出空监听器,并未实现。 如下: text: ActionListener textListener=new ActionListener() {public void actionPerformed(ActionEvent e) {…}} establish ActionListener estListener=new ActionListener() 9 {public void actionPerformed(ActionEvent e) {… }} search ActionListener seaListener=new ActionListener() {public void actionPerformed(ActionEvent e) {… }} help ActionListener helpListener=new ActionListener() {public void actionPerformed(ActionEvent e) {… }} carryout ActionListener carryListener=new ActionListener() {public void actionPerformed(ActionEvent e) {… }} 对于上述方法,是采用 JAVA 中的匿名内部类进行。 对于内部类,在 JAVA 中是受到争议的部分,并不是每个 JAVA 程序员都喜欢使用内部类。 JAVA 设计内部类的目标是为了比 C++简单。 但内部类却并不简单,它的语法很复杂,特别是匿名内部类更是不容易理解。 内部类同 JAVA 中的访问控制,以及安全性方面的交互也不明显。 对于匿名内部类的格式就如上面。 如第一个监听器 text: ActionListener textListener=new ActionListener() {public void actionPerformed(ActionEvent e) {…}} 对于上面的匿名内部类,可以还原为普通的类: 先设一个 Object Ob, public class Ob implements ActionListener{…… } ActionListener textListener=Ob。 这里就等价于上面的程序片段。 其它的几个匿名内部类都可以是和上面的方法一样的。 这里涉及到类类型转换问题,可以参考文献 [3]P88 页。 在本界面中,主要是对 Swing 包中 Jmenu 菜单项和 JmenuItem 菜单子项的应用。 JmenuItem 类和 Jbtton 类都是 抽象类的直接扩展,而 Jmenu 类又扩展了 JmenuItme 类,因此,菜单也是按钮。 当用户用鼠标点击菜单项或子项时,也会象用鼠标点击按钮一样产生动作事件,变化事件。 如上面的点击响应事件 actionPerformed()。 因为本程序是说明图形界面的实现,所以并未给出监听器的具体实现。 在 proceduer 中,包括一个菜单项和一个菜单子项。 对 start(启动)也只给出空监听器,可以以后在实现起功能。 对 enclosure(附件),包括 timeclock(计时器 ),circulat(计算器 )。 timeclock(计时器 )界面如下 10 图 43 timeclock(计时器 )界面 在本界面中,是对图形界面中很重要的一个类 Graphics 的应用,上图中的钟表完全是用 Graphics 类提供的函数所画。 (x+1,y+1,widthi1,heighti1)//画表面 (x,y,widthi,heighti)//画表框 (.,x,y)//画数字 (xcenter,ycenter,lastxs,lastys)//画直线 程序运行后,表就会和系统时间一样,开始运动。 为了实现此界面功能,就用到 JAVA中线程方面的接口,如 Runnable 接口,主要是对 run 方法的运用: public void run() { try{while(!interrupted()) {sleep(interval)。 (this)。 } } catch(InterruptedException e){} } 既当线程未被中断,线程 sleep 有 interval 秒,然后执行 ()方法,重新画图。 Interval 在本程序中设置为 1000,即 1 秒执行一次 timeElapsed()方法。 对于重画工作,是通过调用 paint()方法实现,即用钟面的颜色覆盖掉原表针颜色。 circulat(计算器 )界面 44: 11 图 44 circulat(计算器 )界面 在本界面中,主要是对按纽组件和布局器的运用,涉及到 (网格布局器) (边框布局器) 定义 CalculatorJPanel 为 Jpanel 的子类,并设置其为边框布局, (new GridLayout(rows,cols) 定义 CalculatorJFrame 框架类,设置其为网格布局, setLayout(new BorderLayout()) 然后加入上面的 CalculatorJPanel 面板和一个 JtextField 文本域: add(display,North) add(p,Center) 对于计算,则调用方法 calculate public void calculate(double n) {if((+))arg+=n。 else if(())arg=n。 else if((*))arg*=n。 else if((/))arg/=n。 else if((=))arg=n。 (+arg)。 } 以上既完成了本程序的基本界面设计,并用程序实现之。 12 五 结束语 通过本次设计,成功实现了基于 JAVA 的图形用户界面。 在此过程中,通过运用 JAVA的各种组件,并结合 JAVA 中的其他技术,如线程处理,布局控制来实现此界面。 在 JAVA`````中,图形用户界面主要通过其 AWT 及 Swing 来实现。 在本文中,通过一个计时器,一个计算器来说明其实现过程。 本文由于时间关系,图形界面比较简单,只是 说明了 JAVA 中图形用户界面的基本实现过程以及相关技术,各种功能并不完全。 通过本文,使我对 JAVA 中的各种技术更加的了解,对 JAVA 实现图形用户界面更加的熟悉,基本上掌握了图形用户界面方面的基本知识,以及起相关技术, 提高了我的自学能力,也锻炼了我分析问题解决问题的能力。 参考文献 [1][英 ]Russel WnDer,Gradam 软件开发 .北京:人民邮电出版社, ~ 115 [2][美 ]Joe Wigglosworth,Paula 程序设计高级主题 .北京:北京大学出版社 .303~354 [3](美) ,GaryCornell 著 .程峰译 .JAVA2 核心技术 卷 1:基础知识 . 北京:机械工业出版社 ,~ 266 [4]但正刚 .JAVA2 入门与提高 .北京:清华大学出版社 ,~ 59 [5] 进阶 . 北京:机械工业出版社 ,~ 70 [6]张倩,顾惠敏 .JAVA 实例开发 . 北京: 中国水利水电出版社, ~ 340 [7]赵强,乔新亮 .J2EE 应用开发 . 北京:电子工业出版社 , [8]黄聪明 .精通 JAVA2 程序设计 .北京:清华大学出版社, ~ 22 [9]樊荣 .JAVA 基础教程 .北京:机械工业出版社, ~ 89 [10]邵荣 .JAVA 编程实践指南 .北京:清华大学出版社 ,~ 356 [11]王碧波 .Jbuilder 10 入门与提高 .北京:清华大学出版社 ,~ 87 [12]彭晨阳 .JAVA 实用系统开发指南 .北 京:机械工业出版社, ~ 40 13 附录 程序如下: import .*。 import .*。 import .*。 import .*。 public class MyFrame extends JFrame implements ActionListener,MenuListener{ private JMenu procedure。 private JMenuItem textfile。 private JMenuItem establish。 private JMenuItem sear。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。