Java语言编程技术课件.pptx

上传人(卖家):晟晟文业 文档编号:3703782 上传时间:2022-10-06 格式:PPTX 页数:58 大小:178.33KB
下载 相关 举报
Java语言编程技术课件.pptx_第1页
第1页 / 共58页
Java语言编程技术课件.pptx_第2页
第2页 / 共58页
Java语言编程技术课件.pptx_第3页
第3页 / 共58页
Java语言编程技术课件.pptx_第4页
第4页 / 共58页
Java语言编程技术课件.pptx_第5页
第5页 / 共58页
点击查看更多>>
资源描述

1、Java 语言编程技术1GUI设计 GUI的组成元素 applet GUI布局(layout)事件处理 Swing components的使用 BeansJava 语言编程技术2GUI 演变过程 Java 1.0 Abstract Window Toolkit(AWT)Java 1.1 AWT event model Java 2 Swing 属于Java Foundation Classes(JFC)java.awt.swing com.sun.java.swing javax.swingJava 语言编程技术3AWT类层次关系图Component Container Panel Apple

2、t Window Frame Dialog ButtonTextFieldTextAreaTextComponentCheckboxMenuComponentMenuMenuItemMenuBar其他组件独立不独立Java 语言编程技术4 Swing类Java 语言编程技术5GUI的组成和实现 GUI 的组成:组件 Component 容器 Container 设计&实现图形用户界面的工作 创建GUI各组成成分,并安排从属位置关系 定义GUI各成分对不同事件的响应,实现与用户的交互功能Java 语言编程技术6Swing与AWT区别 类名区别 ButtonJButton Label JLabel

3、 Frame JFrame Checkbox JCheckBox,JRadioButton Choice JComboBox 新添JColorChooser、JSplitPane、JTable、JTree等Java 语言编程技术7Swing与AWT区别(续)Swing 没有native代码 light weight Swing组件提供更多功能 可增加或修改边框 BorderFactory.createLineBorder(Color.red)createLoweredBevelBorder()JComponent中:setBorder(border)方法 Swing 中的JLabel、JBut

4、ton等可显示text、icon,支持HTML多种字体、多行显示 swing组件形状任意Java 语言编程技术8Swing与AWT区别(续)swing组件可以设置外观(look&feel)swing组件使用MVC模式 model:保存内容(数据)view:显示内容 controller:控制用户输入例如:JButton ButtonModellight weight与heavy weight尽量不要混用Java 语言编程技术9Top-Level Containers Swing 提供四个Top-Level Containers:Jframe Jdialog Japplet Jwindow(不常

5、用)Java 语言编程技术10Top-Level Containers(续)import java.awt.*;import javax.swing.*;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

6、 语言编程技术11Top-Level Containers(续)import 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)TopLevelD

7、emo2 frame=new TopLevelDemo2();Java 语言编程技术12Top-Level Containers(续)每个top-level container都有一个contentpane 可以向top-level container添加menu barJPanel contentPane;contentPane.add(someComponent);topLevelContainer.setContentPane(contentPane);topLevelContainer.getContentPane().add(label,BorderLayout.CENTER);fr

8、ame.setJMenuBar(cyanMenuBar);Java 语言编程技术13Top-Level Containers(续)例:TopLevelDemo.javaJava 语言编程技术14applet的下载过程WWW服务器存放HTMLWWW服务器存放.classWWW浏览器(Browser)请求HTML文件下载HTML文件解释并显示HTML文件HTML文件请求Applet字节码文件下载字节码解释执行字节码Java 语言编程技术15applet的执行框架package javax.swing;public class JApplet extends Applet package java.

9、applet;public class Applet extends Panel public void init()public void start()public void stop()public void destroy()Java 语言编程技术16applet的执行框架init()初始化第一次被载入start()启动启动执行appletstop()终止转向其他窗口时applet暂停执行回到applet窗口,重新激活appletdestroy()消亡 构造方法的执行时间早于init()Java 语言编程技术17applet例例:Applet1.javaimport javax.swi

10、ng.*;import java.awt.*;public class Applet1 extends JApplet public void init()getContentPane().add(new JLabel(Applet!);/:Java 语言编程技术18applet运行 Web browser AppletviewerHTML ConverterJava 语言编程技术19applet运行(续)Java 语言编程技术20Applet与Application结合 实现方法 在applet中加入main()方法 在main()中创建一个frame对象和一个applet对象 使用add(

11、)把applet对象放入frame对象中,并显式调用applet对象的init()和start()例:Applet1c.java 工具 com.bruceeckel.swing.Console.javaJava 语言编程技术21布局(layout)每个top-level container都有一个contentpane:public Container getContentPane()Container:public void setLayout(LayoutManager mgr)add(Component comp)将指定组件放到容器中 add(Component comp,int ind

12、ex)remove(Component comp)删除指定组件 JPanel:public class JPanel extends JComponentpublic abstract class JComponent extends ContainerJava 语言编程技术22布局(layout)LayoutManager接口 BorderLayout FlowLayout GridLayout GridBagLayout CardLayout BoxLayout Java 语言编程技术23BorderLayout布局管理器 setLayout(new BorderLayout()add(a

13、component,BorderLayout.NORTH);例:BorderLayout1.java 当容器大小改变,组件相对位置不会改变。CenterNorthSouthWestEastBorderLayout.NORTH BorderLayout.SOUTH BorderLayout.EAST BorderLayout.WEST BorderLayout.CENTER Java 语言编程技术24FlowLayout布局管理器 构造函数:FlowLayout();FlowLayout(int align,int hgap,int vgap);align:对齐方式:LEFT CENTER RI

14、GHThgap:组件水平间距(象素)vgap:组件垂直间距 无参数的构造函数创建的FlowLayout对象,其对齐方式为CENTER居中方式,组件间的横纵间距都为5个像素。例:FlowLayout1.javaJava 语言编程技术25GridLayout布局管理器 构造方法GridLayout()GridLayout(int rows,int cols)GridLayout(int rows,int cols,int hgap,int vgap)例:GridLayout1.javaJava 语言编程技术26BoxLayout布局管理器 构造方法 BoxLayout(Container targ

15、et,int axis)int X_AXISint Y_AXIS 例 :BoxLayout1.javaJava 语言编程技术27Box容器 public static Box createHorizontalBox()public static Box createVerticalBox()public static Component createHorizontalStrut(int width)public static Component createVerticalStrut(int height)public static Component createHorizontalGlu

16、e()public static Component createVerticalGlue()public static Component createRigidArea(Dimension d)Java 语言编程技术28直接管理组件 调用Container的 setLayout(null)方法,关闭布局管理器 调用每一个Component的setLocation()方法决定组件位置 调用每一个Component的setSize()方法决定其大小。直接管理组件将失去平台无关性。Java 语言编程技术29事件及处理机制 用户操作GUI组件时会引发各种事件Event。Event:描述“发生了什么

17、事情”的对象。系统根据用户的操作构造出相应事件类的对象。KeyEvent、MouseEvent、ActionEvent 鼠标单击按扭ActionEvent事件 引发Java 语言编程技术30事件及处理机制(续)每类事件对应一个的listener监听者接口,它规定了接收并处理该类事件的方法的规范。public void actionPerformed(ActionEvent e)ActionListener接口ActionEvent事件Java 语言编程技术31事件及处理机制(续)每个component都有若干个 addXXXListener(XXXListener)removeXXXListe

18、ner()Jbutton:addActionListener(ActionListener)事件处理方法 实现一个实现XXXListener的类 调用component的addXXXListener(XXXListener)实现了XXXListener接口的类对象Java 语言编程技术32鼠标单击按扭事件及处理机制(续)ActionEvent事件 引发public void actionPerformed(ActionEvent e)ActionListener接口ActionEvent事件监听者类监听者对象调用按扭的 addActionListener()方法,为该按扭指定监听者。实现 接口

19、Java 语言编程技术33事件及处理机制(续)例:MyFrame1.javaButton b=new Button(close);b.addActionListener(new Bprocess();class Bprocess implements ActionListener public void actionPerformed(ActionEvent e)System.exit(0);Java 语言编程技术34事件类型在java.awt.event包中定义了若干类型的事件类 低级事件 ComponentEvent(组件事件:组件尺寸的变化,移动)ContainerEvent(容器事件:

20、组件增加,移动)WindowEvent(窗口事件:关闭窗口,窗口闭合,图标化)FocusEvent(焦点事件:焦点的获得和丢失)KeyEvent(键盘事件:键按下、释放)MouseEvent(鼠标事件:鼠标单击,移动)Java 语言编程技术35事件类型(续)高级事件(语义事件)ActionEvent(动作事件:按钮按下,TextField中按Enter键)AdjustmentEvent(调节事件:在滚动条上移动滑块以调节数值)ItemEvent(项目事件:选择项目,不选择项目)TextEvent(文本事件,文本对象改变)Java 语言编程技术36ActionEvent 引发原因:单击按扭,双击

21、列表框中选项,选择菜单项,文本框中的回车 ActionListener actionPerformed(ActionEvent e)组件注册该事件方法:addActionListener(监听者)ActionEvent类方法 e.getSource()返回事件发生的对象(名)e.getActionCommand()返回按扭名。Java 语言编程技术37AdjustmentEvent 引发原因:操作滚动条改变滑块位置 AdjustmentListener adjustmentValueChanged(AdjustmentEvent e)组件注册该事件方法:addAdjustmentListene

22、r(监听者)Java 语言编程技术38ComponentEvent 引发原因:当组件移动、改变大小、改变可见性时引发 ComponentListener componentHidden(ComponentEvent e)组件隐藏 componentMoved(ComponentEvent e)组件移动 componentResized(ComponentEvent e)组件改变大小 componentShown(ComponentEvent e)组件变为可见Java 语言编程技术39ComponentEvent(续)接口适配器 ComponentAdapter 组件注册该事件方法:addCom

23、ponentListenerJava 语言编程技术40ContainerEvent 引发原因:当容器内增加或移走组件时引发 ContainerListener componentAdded(ContainerEvent e)容器内加入组件 componentRemoved(ContainerEvent e)从容器中移走组件 接口适配器 ContainerAdapter 容器注册该事件方法:addContainerListenerJava 语言编程技术41FocusEvent 引发原因:组件获得焦点 组件失去焦点 FocusListener focusGained(FocusEvent e)组件

24、获得焦点时调用 focusLost(FocusEvent e)组件失去焦点时调用 接口适配器:FocusAdapter 组件注册该事件方法:addFocusListenerJava 语言编程技术42KeyEvent 引发原因:敲完键(KEY-TYPED)按下键 (KEY-PRESSED)释放键 (KEY-RELEASE)KeyListener keyPressed(KeyEvent e)键已被按下时调用 keyReleased(KeyEvent e)键已被释放时调用 keyTyped(KeyEvent e)键已被敲完时调用Java 语言编程技术43KeyEvent(续)KeyEvent方法:c

25、har ch=e.getKeyChar();事件监听适配器(抽象类)KeyAdapter 组件注册该事件方法:addKeyListener(监听者)Java 语言编程技术44MouseEvent 引发原因:(鼠标作用在一个组件上)鼠标事件:鼠标键按下,鼠标键抬起,单击鼠标,鼠标光标进入一个组件,鼠标光标离开一个组件。鼠标移动事件:鼠标移动,鼠标拖动 Java 语言编程技术45MouseEvent(续)鼠标事件监听接口1:MouseListener 接受鼠标事件 该接口方法:mouseClicked(MouseEvent e)mouseEntered(MouseEvent e)鼠标光标进入一个组

26、件 mouseExited(MouseEvent e)鼠标光标离开一个组件 mousePressed(MouseEvent e)mouseReleased(MouseEvent e)鼠标事件监听适配器(抽象类)MouseAdapterJava 语言编程技术46MouseEvent(续)鼠标事件监听接口2:MouseMotionListener 接受鼠标移动事件 该接口方法:mouseMoved(MouseEvent e)鼠标光标在组件上移动 mouseDragged(MouseEvent e)用鼠标拖动一个组件 鼠标移动事件监听适配器 MouseMotionAdapter 组件注册鼠标事件方法

27、:add MouseListener(监听者)组件注册鼠标移动事件方法:add MouseMotionListener(监听者)Java 语言编程技术47MouseEvent(续)MouseInputListener extends MouseListener,MouseMotionListener MouseInputAdapterJava 语言编程技术48MouseEvent(续)MouseEvent方法 e.getClickCount()=1 单击 =2 双击 Point e.getPoint()取鼠标光标位置 int e.getX()int e.getY()取鼠标光标位置 e.getM

28、odifiers()=MouseEvent.BUTTON1_MASK 鼠标左键 =MouseEvent.BUTTON3_MASK 鼠标右键Java 语言编程技术49WindowEvent 引发原因:有关窗口操作引发的事件 WindowListener windowActivated(WindowEvent e)激活窗口 windowClosed(WindowEvent e)调用dispose方法关闭窗口后。windowClosing(WindowEvent e)试图利用窗口关闭框关闭窗口 windowDeactivated(WindowEvent e)本窗口成为非活动窗口Java 语言编程技术

29、50WindowEvent(续)windowDeiconified(WindowEvent e)窗口从最小化恢复为普通窗口 windowIconified(WindowEvent e)窗口变为最小化图标 windowOpened(WindowEvent e)当窗口第一次打开成为可见时 接口适配器 WindowAdapter 注册事件方法 addWindowListenerJava 语言编程技术51TextEvent 引发原因:文本框或文本区域内容改变 TextListener textValueChanged(TextEvent e)组件注册该事件方法:addTextListener(监听者)

30、Java 语言编程技术52ItemEvent 引发原因:改变列表框中的选中项 改变复选框选中状态 改变下拉选单的选中项 ItemListener itemStateChanged(ItemEvent e)组件注册该事件方法:addItemListener(监听者)Java 语言编程技术53事件适配器Event Adapters 事件适配器(Event Adapters)ComponentAdapter(组件适配器)ContainerAdapter(容器适配器)FocusAdapter(焦点适配器)KeyAdapter(键盘适配器)MouseAdapter(鼠标适配器)MouseMotionAd

31、apter(鼠标运动适配器)WindowAdapter(窗口适配器)Java 语言编程技术54Event Adapters(续)public interface WindowListener extends EventListener public void windowOpened(WindowEvent e);public void windowClosing(WindowEvent e);public void windowClosed(WindowEvent e);public void windowIconified(WindowEvent e);public void window

32、Deiconified(WindowEvent e);public void windowActivated(WindowEvent e);public void windowDeactivated(WindowEvent e);Java 语言编程技术55Event Adapters(续)public abstract class WindowAdapter implements WindowListener public void windowOpened(WindowEvent e)public void windowClosing(WindowEvent e)public void wi

33、ndowClosed(WindowEvent e)public void windowIconified(WindowEvent e)public void windowDeiconified(WindowEvent e)public void windowActivated(WindowEvent e)public void windowDeactivated(WindowEvent e)Java 语言编程技术56Event Adapters(续)class Wclose implements WindowListener public void windowClosing(WindowEvent e)System.exit(0);class Wclose extends WindowAdapter public void windowClosing(WindowEvent e)System.exit(0);Java 语言编程技术57Tracking multiple events 例:TrackEvent.javaJava 语言编程技术58上机作业 创建一个Frame,完成一个计算器的功能。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(Java语言编程技术课件.pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|