Java图形用户界面的设计与相关实现12.ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java图形用户界面的设计与相关实现12.ppt

7.3.6 键盘事件 KeyListener接口中有三个方法: public void keyPressed(KeyEvent?e) public void keyReleased(KeyEvent?e) public void keyTyped(KeyEvent?e) Java对于用户按键的处理过程: 当前键盘状态为小写状态,要输入一个大写字母“A”,我们的操作过程为:先按住Shift键不放,再按下A键,然后松开。整个过程Java会产生五个事件: 按下Shift键:为VK_SHIFT调用keyPressed方法; 按下A键:为VK_A调用keyPressed方法; 键入字符“A”:为字符“A”调用keyTyped方法; 松开A键:为VK_A调用keyReleased方法; 松开Shift键:为VK_SHIFT调用keyReleased方法。 【例7.12】捕获键盘事件 用户每次按下键盘上的某个键,程序捕获键盘输入,并显示在面板中,内容包括:虚拟键码、键的名称和字符。例如:当前键盘状态为小写状态,用户按下“A”键,显示的值依次为:65,A,a。 程序代码见KeyPress.java。运行结果如下: 7.3.7 鼠标事件 MouseListener接口 : mousePressed:鼠标键被按下时调用; mouseReleased:鼠标键被释放时调用; mouseClicked:合并上述两个事件为一次鼠标点击事件。 这三个方法的参数是MouseEvent,通过getX和getY方法,能够得到鼠标点击时的鼠标指针的x和y坐标。通过getClickCount方法,可以区别是单击操作,还是双击操作。 MouseMotionListener接口 : mouseMoved:鼠标移动; mouseMoved :用户拖动鼠标。 鼠标指针形状的设置: setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); 【例7.13】利用鼠标进行绘图 点击窗口中的空白处,得到一张“笑脸”的图像; 点击已存在的图像,图像在“笑脸”和“哭脸”之间切换; 用鼠标可以对图像进行拖动操作; 在窗口左上角,显示当前鼠标光标的位置。 程序代码见MouseDraw.java。运行结果如下: 7.4 Swing组件 7.4.1 Swing组件 的类继承关系 7.4.2布局管理器 在Java中,提供了布局工具以支持用户界面元素的自动定位。容器中的所有组件都由一个布局管理器进行动态管理。 流布局管理器 在一行上水平排列组件,直到该行没有足够的空间为止,然后另起一行继续排列。当用户缩放容器时,布局管理器将进行自动控制,重新排列。我们可以指定流布局管理器的组件排列方式,如居中(默认)、左对齐、右对齐等。如: setLayout(new FlowLayout(FlowLayout.LEFT)); //左对齐 setLayout(new FlowLayout(FlowLayout.RIGHT)); //右对齐 setLayout(new FlowLayout(FlowLayout.CENTER)); //居中 边界布局管理器 边界布局管理器的布局分为五个位置:CENTER、EAST、WEST、NORTH、SOUTH,我们可以把组件放在这五个位置的任意一个,如果未指定位置,则缺省的位置是CENTER。 采用边界管理器进行布局时,四周的组件先被放置,剩余的空间由位于中间的组件占用;当容器的大小改变时,四周组件的厚度不会被改变,而中间组件的大小需要改变。 【例7.14】 流布局管理器示例 程序代码见FlowLayoutTest.java。运行结果如下: java FlowLayoutTest 10 java FlowLayoutTest 15 【例7.15】边界布局管理器示例 将三个按钮置于南区,而两个文本置于北区。 程序代码见BorderLayoutTest.java。运行结果如下: 7.4.3 文本组件 Java提供的文本组件:用于单行文本输入的文本域(JTextField)和用于多行输入的文本区(JTextArea)。 获得文本域的内容 add1 = Integer.parseInt(originText.getText().trim()); 跟踪文本域内容的修改 //新建文档监听器 DocumentListener resultListener = new ResultListener(); ... //为第一个文本域安装一个文档监听器 originText.getDocument().addDocumentListener(resultListen

文档评论(0)

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

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

1亿VIP精品文档

相关文档