![Java语言编程技术课件_第1页](http://file4.renrendoc.com/view/38b96028eb12a0d1c3c5f6923d2664b9/38b96028eb12a0d1c3c5f6923d2664b91.gif)
![Java语言编程技术课件_第2页](http://file4.renrendoc.com/view/38b96028eb12a0d1c3c5f6923d2664b9/38b96028eb12a0d1c3c5f6923d2664b92.gif)
![Java语言编程技术课件_第3页](http://file4.renrendoc.com/view/38b96028eb12a0d1c3c5f6923d2664b9/38b96028eb12a0d1c3c5f6923d2664b93.gif)
![Java语言编程技术课件_第4页](http://file4.renrendoc.com/view/38b96028eb12a0d1c3c5f6923d2664b9/38b96028eb12a0d1c3c5f6923d2664b94.gif)
![Java语言编程技术课件_第5页](http://file4.renrendoc.com/view/38b96028eb12a0d1c3c5f6923d2664b9/38b96028eb12a0d1c3c5f6923d2664b95.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java 语言编程技术1GUI设计GUI的组成元素appletGUI布局(layout)事件处理Swing components的使用BeansJava 语言编程技术1GUI设计GUI的组成元素Java 语言编程技术2GUI 演变过程Java 1.0 Abstract Window Toolkit(AWT)Java 1.1 AWT event modelJava 2 Swing 属于Java Foundation Classes (JFC)java.awt.swing com.sun.java.swing javax.swingJava 语言编程技术2GUI 演变过程Java 1.0 AJav
2、a 语言编程技术3AWT类层次关系图Component Container Panel Applet Window Frame Dialog ButtonTextFieldTextAreaTextComponentCheckboxMenuComponentMenuMenuItemMenuBar其他组件独立不独立Java 语言编程技术3AWT类层次关系图ComponentJava 语言编程技术4 Swing类Java 语言编程技术4 Swing类Java 语言编程技术5GUI的组成和实现GUI 的组成:组件 Component容器 Container设计&实现图形用户界面的工作创建GUI各组成成
3、分,并安排从属位置关系定义GUI各成分对不同事件的响应,实现与用户的交互功能Java 语言编程技术5GUI的组成和实现GUI 的组成:Java 语言编程技术6Swing与AWT区别类名区别ButtonJButtonLabel JLabelFrame JFrame Checkbox JCheckBox,JRadioButtonChoice JComboBox新添JColorChooser、JSplitPane、JTable、JTree等Java 语言编程技术6Swing与AWT区别类名区别Java 语言编程技术7Swing与AWT区别(续)Swing 没有native代码 light weigh
4、tSwing组件提供更多功能可增加或修改边框 BorderFactory.createLineBorder(Color.red) createLoweredBevelBorder() JComponent中:setBorder(border)方法Swing 中的JLabel、JButton等可显示text、icon,支持HTML多种字体、多行显示swing组件形状任意Java 语言编程技术7Swing与AWT区别(续)SwinJava 语言编程技术8Swing与AWT区别(续)swing组件可以设置外观(look&feel)swing组件使用MVC模式model:保存内容(数据)view:显示
5、内容controller:控制用户输入例如:JButton ButtonModellight weight与heavy weight尽量不要混用Java 语言编程技术8Swing与AWT区别(续)swinJava 语言编程技术9Top-Level ContainersSwing 提供四个Top-Level Containers:JframeJdialogJappletJwindow(不常用)Java 语言编程技术9Top-Level ContaineJava 语言编程技术10Top-Level Containers(续)import java.awt.*;import javax.swing.
6、*;public class TopLevelDemo1 public static void main(String s) JFrame frame = new JFrame(TopLevelDemo); JLabel label = new JLabel(Hello); frame.getContentPane().add(label, BorderLayout.CENTER); frame.pack(); frame.setVisible(true); Java 语言编程技术10Top-Level ContainJava 语言编程技术11Top-Level Containers(续)im
7、port java.awt.*;import javax.swing.*;public class TopLevelDemo2 extends JFrame public TopLevelDemo2() super(TopLevelDemo); JLabel label = new JLabel(Hello); getContentPane().add(label, BorderLayout.CENTER); pack(); setVisible(true); public static void main(String s) TopLevelDemo2 frame = new TopLeve
8、lDemo2(); Java 语言编程技术11Top-Level ContainJava 语言编程技术12Top-Level Containers(续)每个top-level container都有一个contentpane可以向top-level container添加menu barJPanel contentPane ;contentPane.add(someComponent);topLevelContainer.setContentPane(contentPane);topLevelContainer.getContentPane().add(label, BorderLayout.
9、CENTER);frame.setJMenuBar(cyanMenuBar);Java 语言编程技术12Top-Level ContainJava 语言编程技术13Top-Level Containers(续)例:TopLevelDemo.javaJava 语言编程技术13Top-Level ContainJava 语言编程技术14applet的下载过程WWW服务器存放HTMLWWW服务器存放.classWWW浏览器(Browser)请求HTML文件下载HTML文件解释并显示HTML文件HTML文件请求Applet字节码文件下载字节码解释执行字节码Java 语言编程技术14applet的下载过
10、程WWW服务器Java 语言编程技术15applet的执行框架package javax.swing;public class JApplet extends Applet package java.applet;public class Applet extends Panel public void init() public void start() public void stop() public void destroy() Java 语言编程技术15applet的执行框架packagJava 语言编程技术16applet的执行框架init()初始化第一次被载入start()启动启
11、动执行appletstop()终止转向其他窗口时applet暂停执行回到applet窗口,重新激活appletdestroy()消亡 构造方法的执行时间早于init()Java 语言编程技术16applet的执行框架init()Java 语言编程技术17applet例例:Applet1.javaimport javax.swing.*;import java.awt.*;public class Applet1 extends JApplet public void init() getContentPane().add(new JLabel(Applet!); /:Java 语言编程技术17
12、applet例例:Applet1.Java 语言编程技术18applet运行Web browserAppletviewerHTML ConverterJava 语言编程技术18applet运行Web browsJava 语言编程技术19applet运行(续)Java 语言编程技术19applet运行(续)OBJECJava 语言编程技术20Applet与Application结合实现方法在applet中加入main()方法在main()中创建一个frame对象和一个applet对象使用add()把applet对象放入frame对象中,并显式调用applet对象的init()和start()例
13、:Applet1c.java工具 com.bruceeckel.swing.Console.javaJava 语言编程技术20Applet与ApplicatioJava 语言编程技术21布局(layout)每个top-level container都有一个contentpane:public Container getContentPane()Container:public void setLayout(LayoutManager mgr)add(Component comp) 将指定组件放到容器中add(Component comp,int index)remove(Componentco
14、mp) 删除指定组件JPanel :public class JPanel extends JComponentpublic abstract class JComponent extends ContainerJava 语言编程技术21布局(layout)每个top-lJava 语言编程技术22布局(layout)LayoutManager接口 BorderLayoutFlowLayoutGridLayoutGridBagLayoutCardLayoutBoxLayout Java 语言编程技术22布局(layout)LayoutMJava 语言编程技术23BorderLayout布局管理器
15、setLayout(new BorderLayout() )add(acomponent,BorderLayout.NORTH); 例:BorderLayout1.java当容器大小改变,组件相对位置不会改变。CenterNorthSouthWestEastBorderLayout.NORTH BorderLayout.SOUTH BorderLayout.EAST BorderLayout.WEST BorderLayout.CENTER Java 语言编程技术23BorderLayout布局管理器Java 语言编程技术24FlowLayout布局管理器构造函数:FlowLayout() ;
16、FlowLayout(int align, int hgap, int vgap);align :对齐方式:LEFT CENTER RIGHThgap :组件水平间距 (象素)vgap :组件垂直间距无参数的构造函数创建的FlowLayout对象,其对齐方式为CENTER居中方式,组件间的横纵间距都为5个像素。 例 :FlowLayout1.javaJava 语言编程技术24FlowLayout布局管理器构造Java 语言编程技术25GridLayout布局管理器构造方法GridLayout()GridLayout(int rows,int cols)GridLayout(int rows,i
17、nt cols, int hgap,int vgap)例 :GridLayout1.javaJava 语言编程技术25GridLayout布局管理器构造Java 语言编程技术26BoxLayout布局管理器构造方法BoxLayout(Container target,int axis)int X_AXISint Y_AXIS例 :BoxLayout1.javaJava 语言编程技术26BoxLayout布局管理器构造方Java 语言编程技术27Box容器public static Box createHorizontalBox()public static Box createVertical
18、Box()public static Component createHorizontalStrut(int width)public static Component createVerticalStrut(int height)public static Component createHorizontalGlue()public static Component createVerticalGlue()public static Component createRigidArea(Dimension d)Java 语言编程技术27Box容器public statiJava 语言编程技术2
19、8直接管理组件调用Container的 setLayout(null) 方法,关闭布局管理器调用每一个Component的setLocation()方法决定组件位置调用每一个Component的setSize()方法决定其大小。直接管理组件将失去平台无关性。Java 语言编程技术28直接管理组件调用ContainerJava 语言编程技术29事件及处理机制用户操作GUI组件时会引发各种事件Event。Event :描述“发生了什么事情”的对象。 系统根据用户的操作构造出相应事件类的对象。KeyEvent、MouseEvent、ActionEvent 鼠标单击按扭ActionEvent事件 引发
20、Java 语言编程技术29事件及处理机制用户操作GUI组件时Java 语言编程技术30事件及处理机制(续)每类事件对应一个的listener监听者接口,它规定了接收并处理该类事件的方法的规范。public void actionPerformed(ActionEvent e)ActionListener接口ActionEvent事件Java 语言编程技术30事件及处理机制(续)每类事件对应一Java 语言编程技术31事件及处理机制(续)每个component都有若干个addXXXListener(XXXListener) removeXXXListener( ) Jbutton:addActi
21、onListener(ActionListener)事件处理方法实现一个实现XXXListener的类调用component的addXXXListener(XXXListener) 实现了XXXListener接口的类对象Java 语言编程技术31事件及处理机制(续)每个compoJava 语言编程技术32鼠标单击按扭事件及处理机制(续)ActionEvent事件 引发public void actionPerformed(ActionEvent e)ActionListener接口ActionEvent事件监听者类监听者对象调用按扭的 addActionListener ( )方法,为该按扭
22、指定监听者。实现 接口Java 语言编程技术32鼠标单击按扭事件及处理机制(续)AJava 语言编程技术33事件及处理机制(续)例:MyFrame1.javaButton b = new Button(close);b.addActionListener(new Bprocess();class Bprocess implements ActionListener public void actionPerformed(ActionEvent e) System.exit(0); Java 语言编程技术33事件及处理机制(续)例:MyFraJava 语言编程技术34事件类型在java.awt.
23、event包中定义了若干类型的事件类低级事件ComponentEvent(组件事件:组件尺寸的变化,移动)ContainerEvent(容器事件:组件增加,移动)WindowEvent(窗口事件:关闭窗口,窗口闭合,图标化)FocusEvent(焦点事件:焦点的获得和丢失)KeyEvent(键盘事件:键按下、释放)MouseEvent(鼠标事件:鼠标单击,移动)Java 语言编程技术34事件类型在java.awt.eveJava 语言编程技术35事件类型(续)高级事件(语义事件)ActionEvent(动作事件:按钮按下,TextField中按Enter键)AdjustmentEvent(调节
24、事件:在滚动条上移动滑块以调节数值)ItemEvent(项目事件:选择项目,不选择项目)TextEvent(文本事件,文本对象改变)Java 语言编程技术35事件类型(续)高级事件(语义事件)Java 语言编程技术36ActionEvent引发原因:单击按扭,双击列表框中选项,选择菜单项,文本框中的回车ActionListeneractionPerformed(ActionEvent e)组件注册该事件方法:addActionListener(监听者) ActionEvent类方法e.getSource() 返回事件发生的对象(名)e.getActionCommand() 返回按扭名。Java
25、 语言编程技术36ActionEvent引发原因:Java 语言编程技术37AdjustmentEvent引发原因:操作滚动条改变滑块位置AdjustmentListeneradjustmentValueChanged(AdjustmentEvente)组件注册该事件方法:addAdjustmentListener(监听者) Java 语言编程技术37AdjustmentEvent引发Java 语言编程技术38ComponentEvent引发原因:当组件移动、改变大小、改变可见性时引发ComponentListenercomponentHidden(ComponentEvent e) 组件隐藏
26、componentMoved(ComponentEvente) 组件移动componentResized(ComponentEvente)组件改变大小componentShown(ComponentEvente) 组件变为可见Java 语言编程技术38ComponentEvent引发原Java 语言编程技术39ComponentEvent (续)接口适配器 ComponentAdapter组件注册该事件方法:addComponentListenerJava 语言编程技术39ComponentEvent (续Java 语言编程技术40ContainerEvent引发原因:当容器内增加或移走组件时
27、引发ContainerListenercomponentAdded(ContainerEvente) 容器内加入组件componentRemoved(ContainerEvente) 从容器中移走组件接口适配器 ContainerAdapter容器注册该事件方法:addContainerListenerJava 语言编程技术40ContainerEvent引发原Java 语言编程技术41FocusEvent引发原因:组件获得焦点组件失去焦点FocusListenerfocusGained(FocusEvente) 组件获得焦点时调用focusLost(FocusEvente) 组件失去焦点时调
28、用接口适配器:FocusAdapter组件注册该事件方法:addFocusListenerJava 语言编程技术41FocusEvent引发原因:Java 语言编程技术42KeyEvent引发原因:敲完键(KEY-TYPED)按下键 (KEY-PRESSED)释放键 (KEY-RELEASE)KeyListenerkeyPressed(KeyEvente) 键已被按下时调用keyReleased(KeyEvente) 键已被释放时调用keyTyped(KeyEvente) 键已被敲完时调用Java 语言编程技术42KeyEvent引发原因:Java 语言编程技术43KeyEvent(续)Key
29、Event方法:char ch = e.getKeyChar(); 事件监听适配器(抽象类)KeyAdapter组件注册该事件方法:addKeyListener(监听者) Java 语言编程技术43KeyEvent(续)KeyEveJava 语言编程技术44MouseEvent引发原因: (鼠标作用在一个组件上)鼠标事件:鼠标键按下,鼠标键抬起,单击鼠标 ,鼠标光标进入一个组件,鼠标光标离开一个组件。鼠标移动事件:鼠标移动,鼠标拖动 Java 语言编程技术44MouseEvent引发原因: Java 语言编程技术45MouseEvent(续)鼠标事件监听接口1:MouseListener 接受
30、鼠标事件该接口方法:mouseClicked(MouseEvente) mouseEntered(MouseEvente) 鼠标光标进入一个组件mouseExited(MouseEvente) 鼠标光标离开一个组件mousePressed(MouseEvent e)mouseReleased(MouseEvent e)鼠标事件监听适配器(抽象类)MouseAdapterJava 语言编程技术45MouseEvent(续)鼠标事件Java 语言编程技术46MouseEvent(续)鼠标事件监听接口2:MouseMotionListener 接受鼠标移动事件该接口方法:mouseMoved(Mou
31、seEvente) 鼠标光标在组件上移动mouseDragged(MouseEvente)用鼠标拖动一个组件鼠标移动事件监听适配器 MouseMotionAdapter组件注册鼠标事件方法:add MouseListener(监听者) 组件注册鼠标移动事件方法:add MouseMotionListener(监听者) Java 语言编程技术46MouseEvent(续)鼠标事件Java 语言编程技术47MouseEvent(续)MouseInputListener extends MouseListener, MouseMotionListenerMouseInputAdapterJava 语
32、言编程技术47MouseEvent(续)MousJava 语言编程技术48MouseEvent(续)MouseEvent方法e.getClickCount() =1 单击 =2 双击Point e.getPoint() 取鼠标光标位置int e.getX() int e.getY() 取鼠标光标位置e.getModifiers() = MouseEvent.BUTTON1_MASK 鼠标左键 = MouseEvent.BUTTON3_MASK 鼠标右键Java 语言编程技术48MouseEvent(续)MousJava 语言编程技术49WindowEvent引发原因:有关窗口操作引发的事件Wi
33、ndowListenerwindowActivated(WindowEvente) 激活窗口windowClosed(WindowEvente) 调用dispose方法关闭窗口后。windowClosing(WindowEvente) 试图利用窗口关闭框关闭窗口windowDeactivated(WindowEvente) 本窗口成为非活动窗口Java 语言编程技术49WindowEvent引发原因:Java 语言编程技术50WindowEvent(续)windowDeiconified(WindowEvente) 窗口从最小化恢复为普通窗口windowIconified(WindowEven
34、te) 窗口变为最小化图标windowOpened(WindowEvente) 当窗口第一次打开成为可见时接口适配器 WindowAdapter注册事件方法addWindowListenerJava 语言编程技术50WindowEvent(续)winJava 语言编程技术51TextEvent引发原因:文本框或文本区域内容改变TextListenertextValueChanged(TextEvente)组件注册该事件方法:addTextListener(监听者) Java 语言编程技术51TextEvent引发原因:Java 语言编程技术52ItemEvent引发原因:改变列表框中的选中项改
35、变复选框选中状态改变下拉选单的选中项ItemListeneritemStateChanged(ItemEvente)组件注册该事件方法:addItemListener(监听者) Java 语言编程技术52ItemEvent引发原因:Java 语言编程技术53事件适配器Event Adapters事件适配器(Event Adapters)ComponentAdapter(组件适配器)ContainerAdapter(容器适配器)FocusAdapter(焦点适配器)KeyAdapter(键盘适配器)MouseAdapter(鼠标适配器)MouseMotionAdapter(鼠标运动适配器)WindowAdapter(窗口适配器)Java 语言编程技术53事件适配器Event AdapteJava 语言编程技术54Event Adapters (续)public interface WindowListener
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- QC/T 1217-2024车载有线高速媒体传输万兆全双工系统技术要求及试验方法
- 人民版道德与法治九年级上册第五课《小康家园》配套听课评课记录
- 人教新课标地理七年级上册《2.2 海陆的变迁》听课评课记录
- 湘教版地理七年级上册 第三章 第三节《世界的语言与宗教》听课评课记录
- 人教版数学八年级下册听评课记录:第20章复习课(二)
- 环评招募合伙协议书(2篇)
- 新版华东师大版八年级数学下册《16.1.1分式》听评课记录2
- 星球版地理八年级上册《第二节 众多的人口》听课评课记录1
- 五年级上册数学听评课记录《数学好玩-图形中的规律》(4)北师大版
- 苏科版数学八年级上册听评课记录《4-4近似数》
- 中国氢内燃机行业发展环境、市场运行格局及前景研究报告-智研咨询(2024版)
- 《自然保护区划分》课件
- 2025年普通卷钉项目可行性研究报告
- 2024年湖南高速铁路职业技术学院高职单招数学历年参考题库含答案解析
- 上海铁路局招聘笔试冲刺题2025
- 学校食堂餐厅管理者食堂安全考试题附答案
- 《商用车预见性巡航系统技术规范》
- 国旗班指挥刀训练动作要领
- 春季安全开学第一课
- 植物芳香油的提取 植物有效成分的提取教学课件
- 陕鼓集团招聘笔试题目
评论
0/150
提交评论