版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、图形绘制 创建一个框架 在面板中显示信息 2D图形(颜色,文本和字体) AWT事件处理机制 事件处理基础 AWT事件 键盘事件 鼠标事件,第五章 图形程序设计,JAVA GUI 组件,包Swing和包AWT GUI 分类 容器类: JFrame, JPanel, JApplet, 辅助类: Graphics, Color, Font, (在AWT包中) 组件类: JButton, JLabel, (在Swing包中),创建一个框架,顶层窗口 JFrame常用方法 setVisible,setTitle,setSize,setIconImage,setJMenuBar,setResizable,
2、 setLocation,dispose 例:SimpleFrameTest.java 框架定位 例:CenteredFrameTest.java 向框架中添加组件 例: FrameWithComponent.java,Container contentPane= getContentPane( ); 组件类 c=new ; contentPane.add(c) ;,在面板中显示信息,为了在面板中进行绘制,需要实现 (1)定义一个扩展JPanel的新类 (2)重写paintComponent方法 注意:永远不要自己调用该方法,如果需要强制重绘屏幕,调用repaint方法。,通常,在面板上绘制信
3、息,然后将面板添加到框架中,2D图形,Graphics中提供了很多方法绘制图形; Java 2D类库中实现了更强大的图形操作集,使用Graphics2D中提供的方法进行绘制。,public void paintComponent(Graphics g) Graphics2D g2=(Graphics2D )g; ,Java 2D库使用面向对象的方式组织几何形体。例如,分别有不同的类代表直线,矩形和椭圆:Line2D , Rectangle2D , Ellipse2D,Rectangle rect=; g2.draw(rect);,2D图形,2D图形, 直线,Line line=new Line
4、2D.Double(startx,starty,endx,endy); g2.draw(line);,/使用左上顶点的坐标、宽度和高度 Rectangle2D doubleRect=new Rectangle2D.Double(startx,starty,width,height); /使用对脚线上的两个顶点 Rectangle2D doubleRect=new Rectangle2D.Double( ); doubleRect.setFrameFromDiagonal(x1,y1,x2,y2);, 矩形,2D图形,2D图形,颜色,setPaint方法(对于Graphics2D) java.a
5、wt.Color提供了13种标准颜色;通过创建Color对象来定制一种颜色;,Graphics2D g2=; g2.setPaint(Color.RED); /使用Color中的标准颜色 g2.setPaint(new Color(0,128,128);/参数为红绿蓝比例,0-255 g2.setPaint(SystemColor.windowText);/使用SystemColor中颜色 /将框架的背景颜色设置成用户桌面窗口使用的默认值 frame.setBackground(SystemColor.window);,2D图形,填充图形,使用fill方法,可用一种颜色填充闭合的图形。,Rec
6、tangle2D rect=; g2.setPaint(Color.RED); g2.fill(rect);,例:FillTest.java,2D图形,文本和字体(Font),可以使用字体名来指定字体 ; 可以通过调用GraphicsEnvironment类的getAvailableFamilyNames 方法,找到一个计算机中的可用字体; AWT定义了五个逻辑字体名: ScansSerif, Serif, Monospaced, Dialog, DialogInput,例:ListFont.java, FontTest.java,图形编程 创建一个框架 在面板中显示信息(扩展JPanel类,
7、重写paintComponent ) 显示文本(drawString,Font) 显示2D图形(Graphics2D,draw,fill,图形类,Color),回顾,小结,AWT事件处理机制 事件处理基础 AWT事件 键盘事件 鼠标事件,AWT事件处理基础,基本概念,事件:用户对组件的一个操作 事件源:发生事件的组件 事件监听器:包含处理事件的方法,是一个实现专门的监听器接口的类的对象,组件(事件源),事件监听器,1.事件监听器注册,外部作用,事件对象,3.生成事件对象,4.将事件对象传递 给事件监听器,2,例:EventFocus.java, EventWindos.java,AWT事件处理
8、基础,基本格式,定义事件监听器类(实现某个监听器接口) 注册事件监听器 eventSourceObject.addEventListener(eventListenerObject);,例:ButtonTest.java,MyListener listener=; JButton button=new JButton(“OK”); button.addActionListener(listener);,class MyListener implements ActionListener public void actionPerformed(ActionEvent event) ,AWT事件处
9、理基础,事件,事件源和事件监听器,组件(事件源),事件监听器2,外部作用,事件对象1,事件对象2,事件监听器1,. . .,. . .,一个事件源上注册多个不同类型的事件监听器,AWT事件处理基础,事件,事件源和事件监听器,组件1(事件源1),外部 作用,事件对象,事件监听器,. . .,组件2(事件源2),多个事件源的同一事件可由一个事件监听器处理,AWT事件处理基础,事件,事件源和事件监听器,外部 作用,事件对象,事件监听器2,. . .,组件(事件源),一个事件源可以注册对同一事件进行处理的多个事件监听器,事件监听器1,AWT事件,常见事件类型, ActionEvent ItemEven
10、t AdjustmentEvent KeyEvent MouseEvent MouseWheelEvent FocusEvent WindowEvent,AWT事件,常见事件类型,EventObject,AWTEvent,ActionEvent,Adjustment Event,Component Event,ItemEvent,FocusEvent,InputEvent,PaintEvent,WindowEvent,KeyEvent,MouseEvent,MouseWheelEvent,AWT事件,常见事件类型,监听器接口,ActionListener ItemListeer MouseMo
11、tionListener AdjustmentListener KeyListener WindowFocusListener MouseListener MouseWheelListener WindowStateListener FocusListener WindowListener, ActionEvent ItemEvent AdjustmentEvent KeyEvent MouseEvent MouseWheelEvent FocusEvent WindowEvent,按钮点击、菜单选择、选择列表项、在文本域中键入enter,用户调节滚动条,鼠标键被按下、释放、移动或拖动,某个组
12、件获得焦点或失去焦点,用户从复选框或列表项中选择一项,一个键被按下或释放,鼠标滚轮被转动,窗口状态被改变,键盘事件, 键盘事件监听器类必须实现KeyListener的keyPressed, keyReleased , keyTyped方法;或者直接继承KeyAdapter类 。 并不是每一次击键都会引发对keyTyped方法的调用,只有能够生成一个Unicode字符的击键动作才会引起该方法的调用。因而,可在keyPressed方法中检查光标键或其他命令键。 Java明确区分字符和虚拟键码(与键盘的键一一对应,例如,VK_A,VK_SHIFT)。,例:KeyEventTest.java,KeyE
13、ventMovingHello.java,Sketch.java,public void keyPressed(KeyEvent event) int keyCode=event.getKeyCode(); if(keyCode=KeyEvent.VK_RIGHT) public void keyTyped(KeyEvent event) char c=event.getKeyChar( );,鼠标事件, 鼠标事件监听器接口: MouseListener: mouseClicked, mouseEntered , mouseExited , mousePressed, mouseReleased MouseMotionListener :mouseDragged,mouseMoved,例:SimpleMouseTest.java,MouseTest.java,定时器类Timer, 按照预定的频
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绝经期女性骨质疏松预防措施
- 老年人三叉神经痛
- 2026江苏苏州资管集团下属公司招聘14人备考题库及答案详解【新】
- 2026中国中煤能源集团有限公司春季招聘备考题库含答案详解(满分必刷)
- 2026越秀地产春季校园招聘备考题库附答案详解(黄金题型)
- 2026安徽合肥热电集团春季招聘25人备考题库带答案详解(考试直接用)
- 2026四川省国有资产投资管理有限责任公司春季招聘4人备考题库参考答案详解
- 2025年AI驱动的光伏电站全生命周期管理
- 2025年病毒载体介导基因编辑的安全性改进策略
- 皮肤科医生工作制度
- 2025年针灸简答题试题及答案
- 惠州低空经济
- 2025年高考真题-化学(湖南卷) 含答案
- 土壤有机碳分布规律及其空间与垂向特征的解析研究
- 浆砌片石劳务施工合同
- 五年级语文阅读理解32篇(含答案)
- 人民版劳动教育二年级下册全册课件
- 2025年统计学多元统计分析期末考试题库:多元统计分析综合试题
- 江岸区2023-2024学年下学期期中七年级数学试卷(含答案)
- 核聚变材料研究进展-深度研究
- 互联网十创新创业项目计划书
评论
0/150
提交评论