Java语言编程技术.pptx
《Java语言编程技术.pptx》由会员分享,可在线阅读,更多相关《Java语言编程技术.pptx(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java 语言编程技术1GUI设计nGUI的组成元素nappletnGUI布局(layout)n事件处理nSwing components的使用nBeansJava 语言编程技术2GUI 演变过程nJava 1.0 Abstract Window Toolkit(AWT)nJava 1.1 AWT event modelnJava 2 Swing u 属于Java Foundation Classes (JFC)ujava.awt.swing com.sun.java.swing javax.swingJava 语言编程技术3AWT类层次关系图Component Container Panel
2、 Applet Window Frame Dialog ButtonTextFieldTextAreaTextComponentCheckboxMenuComponentMenuMenuItemMenuBar其他组件独立不独立Java 语言编程技术4 Swing类Java 语言编程技术5GUI的组成和实现nGUI 的组成:u组件 Componentu容器 Containern设计&实现图形用户界面的工作u创建GUI各组成成分,并安排从属位置关系u定义GUI各成分对不同事件的响应,实现与用户的交互功能Java 语言编程技术6Swing与AWT区别n类名区别uButtonJButtonuLabel
3、 JLabeluFrame JFrameu uCheckbox JCheckBox,JRadioButtonuChoice JComboBoxu新添JColorChooser、JSplitPane、JTable、JTree等Java 语言编程技术7Swing与AWT区别(续)nSwing 没有native代码 light weightnSwing组件提供更多功能u可增加或修改边框 BorderFactory.createLineBorder(Color.red) createLoweredBevelBorder() JComponent中:setBorder(border)方法uSwing 中
4、的JLabel、JButton等可显示text、icon,支持HTML多种字体、多行显示uswing组件形状任意Java 语言编程技术8Swing与AWT区别(续)uswing组件可以设置外观(look&feel)uswing组件使用MVC模式tmodel:保存内容(数据)tview:显示内容tcontroller:控制用户输入例如:JButton ButtonModellight weight与heavy weight尽量不要混用Java 语言编程技术9Top-Level ContainersnSwing 提供四个Top-Level Containers:uJframeuJdialoguJa
5、ppletuJwindow(不常用)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(); f
6、rame.setVisible(true); Java 语言编程技术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
7、 static void main(String s) TopLevelDemo2 frame = new TopLevelDemo2(); Java 语言编程技术12Top-Level Containers(续)n每个top-level container都有一个contentpanen可以向top-level container添加menu barJPanel contentPane ;contentPane.add(someComponent);topLevelContainer.setContentPane(contentPane);topLevelContainer.getConte
8、ntPane().add(label, BorderLayout.CENTER);frame.setJMenuBar(cyanMenuBar);Java 语言编程技术13Top-Level Containers(续)n例:TopLevelDemo.javaJava 语言编程技术14applet的下载过程WWW服务器存放HTMLWWW服务器存放.classWWW浏览器(Browser)请求HTML文件下载HTML文件解释并显示HTML文件HTML文件请求Applet字节码文件下载字节码解释执行字节码Java 语言编程技术15applet的执行框架package javax.swing;publi
9、c 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 语言编程技术16applet的执行框架init()初始化第一次被载入start()启动启动执行appletstop()终止转向其他窗口时applet暂停执行回到applet窗口,重新激活appletdestroy()消亡 构造方法的执行时间早于init()Ja
10、va 语言编程技术17applet例例:Applet1.javaimport javax.swing.*;import java.awt.*;public class Applet1 extends JApplet public void init() getContentPane().add(new JLabel(Applet!); /:Java 语言编程技术18applet运行nWeb browsernAppletviewerHTML ConverterJava 语言编程技术19applet运行(续)Java 语言编程技术20Applet与Application结合n实现方法u在apple
11、t中加入main()方法u在main()中创建一个frame对象和一个applet对象u使用add()把applet对象放入frame对象中,并显式调用applet对象的init()和start()n例 :Applet1c.javan工具 com.bruceeckel.swing.Console.javaJava 语言编程技术21布局(layout)n每个top-level container都有一个contentpane:public Container getContentPane()nContainer:upublic void setLayout(LayoutManager mgr)u
12、add(Component comp) 将指定组件放到容器中uadd(Component comp,int index)uremove(Component comp) 删除指定组件nJPanel :public class JPanel extends JComponentpublic abstract class JComponent extends ContainerJava 语言编程技术22布局(layout)nLayoutManager接口 uBorderLayoutuFlowLayoutuGridLayoutuGridBagLayoutuCardLayoutuBoxLayoutu J
13、ava 语言编程技术23BorderLayout布局管理器nsetLayout(new BorderLayout() )nadd(acomponent,BorderLayout.NORTH); n例:BorderLayout1.javan当容器大小改变,组件相对位置不会改变。CenterNorthSouthWestEastBorderLayout.NORTH BorderLayout.SOUTH BorderLayout.EAST BorderLayout.WEST BorderLayout.CENTER Java 语言编程技术24FlowLayout布局管理器n构造函数:uFlowLayou
14、t() ;uFlowLayout(int align, int hgap, int vgap);align :对齐方式:LEFT CENTER RIGHThgap :组件水平间距 (象素)vgap :组件垂直间距n无参数的构造函数创建的FlowLayout对象,其对齐方式为CENTER居中方式,组件间的横纵间距都为5个像素。 n例 :FlowLayout1.javaJava 语言编程技术25GridLayout布局管理器n构造方法GridLayout()GridLayout(int rows,int cols)GridLayout(int rows,int cols, int hgap,int
15、 vgap)n例 :GridLayout1.javaJava 语言编程技术26BoxLayout布局管理器n构造方法nBoxLayout(Container target,int axis)int X_AXISint Y_AXISn例 :BoxLayout1.javaJava 语言编程技术27Box容器npublic static Box createHorizontalBox()npublic static Box createVerticalBox()npublic static Component createHorizontalStrut(int width)npublic stati
16、c Component createVerticalStrut(int height)npublic static Component createHorizontalGlue()npublic static Component createVerticalGlue()npublic static Component createRigidArea(Dimension d)Java 语言编程技术28直接管理组件n调用Container的 setLayout(null) 方法,关闭布局管理器n调用每一个Component的setLocation()方法决定组件位置n调用每一个Component的
17、setSize()方法决定其大小。直接管理组件将失去平台无关性。Java 语言编程技术29事件及处理机制n用户操作GUI组件时会引发各种事件Event。nEvent :描述“发生了什么事情”的对象。 系统根据用户的操作构造出相应事件类的对象。KeyEvent、MouseEvent、ActionEvent 鼠标单击按扭ActionEvent事件 引发Java 语言编程技术30事件及处理机制(续)n每类事件对应一个的listener监听者接口,它规定了接收并处理该类事件的方法的规范。public void actionPerformed(ActionEvent e)ActionListener接口
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言 编程 技术
限制150内