资源预览内容
第1页 / 共55页
第2页 / 共55页
第3页 / 共55页
第4页 / 共55页
第5页 / 共55页
第6页 / 共55页
第7页 / 共55页
第8页 / 共55页
第9页 / 共55页
第10页 / 共55页
亲,该文档总共55页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Java图形界面编程 Java图形界面编程“没有图片或对话,”爱丽丝想,“一本书还能有什么用呢?” 刘易斯.卡莱尔,爱丽丝漫游奇境记Java图形界面编程 学习目标学习目标 n掌握用AWT来设计图形用户界面的方法,尤其是组件、容器、布局管理器等概念。n学习AWT事件处理模型,掌握事件源、事件、事件处理者等概念,让程序能够响应用户的操作。n了解AWT各个组件的用法及所采用的事件处理接口。Java图形界面编程 学习指南学习指南 n理解概念,多实践,勤思考,举一反三。Java图形界面编程 难难 重重 点点n【重点重点】 事件处理模型。n【难点难点】 内部类匿名类在AWT中的应用。Java图形界面编程 知知 识识 点点 用AWT/SWING设计图形化用户界面容器布局管理器事件处理模型组件库Java图形界面编程 Java程序的用户界面用户界面是用户和计算机系统交互的接口。用户界面功能是否完善和便捷直接影响到用户对软件的使用。图形用户界面(Graphics User Interface)简称GUI,使用图形的方式借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便的发出系统命令,启动操作。Java语言为了方便图形用户界面的开发,设计了专门的类库来生成各种标准图形界面和处理图形界面的各种事件。这个类库就是java.awt包。Java图形界面编程 Java程序的用户界面一个GUI系统的基本组成 提供最基本的可视化控件 按钮、标签、文本框、 能将基本GUI控件组织为包容层次的容器组件 顶层容器、中间容器、容器中可容纳其他容器、 负责管理容器中组件布局的组件 边界布局管理器、流布局管理器、 事件处理模式Java图形界面编程 awt:Abstract Window Toolkit抽象窗口工具集从Java1.0中出现。AWT组件,都是“重量级”的组件 awt处理用户界面元素的方法是把这些元素的创建和行为委托给每个目标平台(如windows,Linux)上的本地GUI处理。每个平台提供的图形界面元素都不一样。不同平台上的awt库存在不同Bug。awt的事件处理模型在Java1.1版进行了大的改动后,到目前的版本基本没变。swing:Java 2.0中出现。Swing组件全部是由纯Java编写的,用户界面元素都绘制在空白窗口上,绘制和行为都由swing类自己完成。各平台之间唯一不同的就是最外层窗口的创建。总结:现在编写Java图形界面程序,使用“swing组件 + awt事件处理”模型。Java图形界面编程 图形用户界面中常用的组件图形用户界面中常用的组件Java图形界面编程 Swing 结构ObjectComponentJFrameContainerWindowFrameDialogJDialogJTextJComboBoxJLabelJListJMenuBarJOptionPaneJPanelJScrollBarAbstractButtonJToggleButtonJMenuItemJButtonJCheckBoxJRadioButtonJComponentJMenuJava图形界面编程 Swing介绍Java1.2引入称为Swing的新的GUI组件库。 Swing包括javax.swing包及其子包。Swing有一个与平台无关的实现,而且具有一个艺术状态的属性集。尽管Swing独立于AWT,但它是依照基本的 AWT类实现的。Java图形界面编程 MVC设计模式模型模型-存储内容存储内容视图视图-显示内容显示内容控制器控制器-处理用户输入处理用户输入Java图形界面编程 MVC的交互Java图形界面编程 创建GUI真简单import javax.swing.*;(1)创建frame JFrame frame = new JFrame();(2)创建图形组件 JButton button = new JButton(“ok”);(3)将图形组件加到frame上 frame.getContentPane().add(button);(4)显示出来 frame.setSize(300,300); frame.setVisible(true);Java图形界面编程 Component(组件)Java的图形用户界面的最基本组成部分是组件,组件是一个可以以图形化的方式显示在屏幕上并能与用户进行交互的对象,例如一个按钮,一个标签等。组件不能独立地显示出来,必须将组件放在一定的容器中才可以显示出来。Java图形界面编程 GUI组件程序与用户的交互,通过窗口中的组件来完成。窗口中的一个组件就是一个对象。swing包中常用包中常用GUI组件包括:组件包括:JButton:按钮JCheckBox:可选框JComboBox:组合框JLabel:标签JList:列表JPasswordField:密码域JProgressBar:进度条JRadioButton:单选按钮JScrollBar:滚动条JTable:表格JTextArea:文本区JTextField:文本域JTree:树型框Java图形界面编程 各组件的常用方法我们可以通过调用组件的方法来指定组件的大小、形状、颜色,绘制图形、图象,输出文字,或者对外部事件进行响应等。如:setSize( )setVisible( )setBackground( )具体的各个组件有些什么方法还需查阅相关帮助文档。Java图形界面编程 Container(容器)容器(Container)实际上是Component的子类,因此容器本身也是一个组件,具有组件的所有性质,另外还具有容纳其它组件和容器的功能。Container 对象可用于将组件组合在一起。容器中的组件根据特定布局排列。Swing 中的容器有两类: - 顶级容器 - 中间容器 Swing 中容器的主要功能组件的管理 布局管理Java图形界面编程 顶级容器JFrame:用于框架窗口的类,此窗口带有边框、标题、用于关闭和最小化窗口的图标等。带 GUI 的应用程序通常至少使用一个框架窗口。JDialog:用于对话框的类。JApplet:用于使用 Swing 组件的 Java Applet 的类。Java图形界面编程 中间容器JPanel:最灵活、最常用的中间容器。JScrollPane:与 JPanel 类似,但还可在大的组件或可扩展组件周围提供滚动条。JTabbedPane:包含多个组件,但一次只显示一个组件。用户可在组件之间方便地切换。JToolBar:按行或列排列一组组件(通常是按钮)。Java图形界面编程 基本的 Swing 应用程序import javax.swing.*; public class HelloSwing public static void main(String args) JFrame frame = new JFrame(HelloSwing); JLabel label = new JLabel(你好,你好,Swing); frame.getContentPane().add(label); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); frame.setSize(300,200); frame.setVisible(true); 导入必要的包,一般还需导入:导入必要的包,一般还需导入: import java.awt.*; import java.awt.event.*; 设置一个设置一个顶级容器顶级容器创建一个创建一个Swing组组件件将组件添加到将组件添加到容器内容窗格容器内容窗格实现了在单击实现了在单击“关闭关闭”按钮按钮时,时,可以关闭窗口。可以关闭窗口。如果使用的如果使用的早期版本的平台,则需要通早期版本的平台,则需要通过事件监听器实现过事件监听器实现 Java图形界面编程 import java.awt.*; import javax.swing.*; public class HelloSwing public static void main(String args) JFrame frame = new JFrame(HelloSwing); JLabel label = new JLabel(你好,Swing); JButton btn = new JButton(Click Me!); frame.getContentPane().setLayout(new FlowLayout(); frame.getContentPane().add(label); frame.getContentPane().add(btn); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300,200); frame.setVisible(true); Java图形界面编程 向窗口(容器)中添加组件组件要添加到窗口容器中。import javax.swing.*;import java.awt.*;public class ContentTest extends JFrame public static void main(String args) JFrame helloFrame = new ContentTest ();helloFrame.show(); public ContentTest () setSize(300,200);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Container containerPane = getContentPane();containerPane.add(new JLabel(Hello World!); ContentPaneJava图形界面编程 JFrame是放置其他 Swing 组件的顶级容器JFrame 组件用于在 Swing 程序中创建窗体它的构造函数:JFrame()JFrame(String Title)组件必须添加至内容窗格,而不是直接添加至 JFrame 对象,示例: frame.getContentPane().add(b);Java图形界面编程 JPanelJPanel 组件是一个中间容器用于将小型的轻量级组件组合在一起JPanel 的缺省布局为 FlowLayoutJPanel 具有下列构造函数:JPanel()JPanel(LayoutManager lm)Java图形界面编程 JButtonSwing 的按钮相对于AWT中Button类提供了更多的功能。 JButton类允许用图标、字符串或两者同时构造一个按钮。 构造函数如下:JButton()JButton(Icon icon):icon表示使用的图标表示使用的图标JButton(String text):text表示使用的字符串表示使用的字符串JButton(String text, Icon icon) ImageIcon buttonIcon1 = new ImageIcon(on.gif); JButton b1 = new JButton(First Button, buttonIcon1);b1.setMnemonic(KeyEvent.VK_F); 设置键盘设置键盘快捷方式快捷方式创建一个带图标创建一个带图标的的JButtonJava图形界面编程 JPanel和JButton使用示例import java.awt.*;import javax.swing.*;class PanelDemo extends JFrame public PanelDemo( String title) super(title); Container c=getContentPane(); JPanel cpane = new JPanel(); JButton ok = new JButton(确定确定); cp
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号