第六章 图形用户界面
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、Swing常用组件 常用组件
AbstractButton JComboBox JFileChooser JInternalFrame JLabel JComponent JLayeredPane JList java.awt.container JMenuBar JPanel java.lang.object …… JTable JTextComponent …… JEditorPane JTextArea JTextField JFormattedTextField JPasswordField JDesktopPane JButton JMenuItem JToggleButton JCheckBox JCheckBoxMenuItem JMenu JRadioButtonMenuIte m JRadioButton
一、图形用户界面概述
2. 容器 顾名思义,容器是用来容纳组件的。容器(Container)是 Component类的子类,由Container类的子类和间接子类创建 的对象均称为容器,容器本身也是一种组件,可以通过add()方 法向容器中添加组件,也可以把一个容器添加到另一个容器中 以实现容器的嵌套,容器具有组件的所有性质。 Java中AWT和Swing组件各有三类常用的容器,AWT的容 器有Frame、Panel和Applet,Swing的容器有JFrame、 JPanel和JApplet,另外Swing还有JScrollPane(滚动窗格)、 JSplitPae(拆分窗格)和JLayeredPane(分层窗格)等容器。
Байду номын сангаас
一、图形用户界面概述
使用框架:(1)框架创建 框架外观控制 框架信息显示 框架创建(2)框架外观控制 使用框架 框架创建 框架外观控制(3)框架信息显示
import javax.swing.*; import java.awt.*; public class HelloWorld{ public static void main(String args) { TextFrame frame=new TextFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show();}} class TextFrame extends JFrame{ public TextFrame(){ setTitle("HelloWorld");setSize(WIDTH,HEIGHT); TextPanel panel = new TextPanel(); Container contentPane = getContentPane(); contentPane.add(panel); public static final int WIDTH = 300; public static final int HEIGHT = 200; } class TextPanel extends JPanel{ public void paintComponent(Graphics g){ super.paintComponent(g); g.drawString("Hello, World!", x, y);} public int x=100; public int y=100;}
二、Swing常用组件 常用组件
1. 文本组件
Java提供的文本组件包括两个:用于单行文本输入的文本域(JTextField) 和用于多行输入的文本区(JTextArea),使用getText方法获得文本域所做的 修改: addl=Integer.parseInt(originText.getText().trim()); 跟踪该文本域的内容,使用文档监听器: DocumentListener resultListener=new ResultListener(); originText.getDocument().addDocumentListener(resultListener); 当文本发生改变后,下面三个方法之一会被调用: void insertUpdate(DocumentEvent e) void removeUpdate(DocumentEvent e) void changedUpdate(DocumentEvent e) 当文本中的内容被添加或删除时,前两个方法会被调用,而对于文本 域来说,第三个方法则不会被调用。为了对文本的改变进行处理,需要实 现这三个方法。当需要重新设置文本域的内容时,可以使用setText方法: resultText.setText(S),其中s是String类型的变量。
一、图形用户界面概述
3. AWT组件 组件 AWT是API为Java程序提供的建立图形用户界面GUI工具集, AWT可用于Java Applet和Application中。它提供用户界面组件、 事件处理模型、图形和图像工具、布局管理器等,可以进行灵 活的窗口布局,与特定窗口的尺寸和屏幕分辨率无关。 java.awt包中提供了GUI设计所需的类和接口,主要包括组 件、容器与布局管理器等相关概念。由java.awt包中的类创建的 组件称为重组件,每创建一个组件时,都有一个相应的本地组 件在为它工作,AWT组件设计原理是把与显示组件有关的许多 工作和处理事件的工作交给相应的本地组件。基于重组件的GUI 设计有许多不足之处,如同一程序在不同的平台可能有不同的 外观呈现,使用AWT进行GUI设计会消耗大量的系统资源。
一、图形用户界面概述
Button Canvas CheckBox Choice java.awt Component Container Component Label FlowLayout BorderLayout CardLayout Gridlayout GridBagLayout MenuComponen t AWTEvent MenuBar Menu MenuItem
一、图形用户界面概述
Component Container
JComponent
Window
Frame JTextField JTextArea JButton JPanel JTable JTree
Dailog
JFrame
JDialog
一、图形用户界面概述
5. 组件与容器的关系
在Java中必须理解容器和组件两个基本概念,以及它们之间的关系。 (1)Java把由Component类的子类或间接子类创建的对象称为一个组件。 (2)Java把由Container的子类或间接子类创建的对象称为一个容器。 (3)可以向容器添加组件。Container类提供了一个public方法add(),一 个容器可以调用这个方法将组件添加到该容器中。 (4)调用removeAll()方法可以清除容器中的所有组件,调用 remove(Component c)可以在容器中删除指定参数的组件。 (5)每当容器添加新的组件或删除组件时,应该让容器调用validate()方 法,以保证容器中的组件能正确显示出来。 (6)容器本身也是一个组件,因此可以把一个容器添加到另一个容器中 实现容器的嵌套。
方法 Panel() Panel(LayoutManager layout) 功能 创建一个Panel类对象,布局管理器为默认的flowLayout 类对象,布局管理器为默认的 创建一个 类对象 创建一个Panel类对象,将layout设置为默认布局管理器 类对象, 创建一个 类对象 设置为默认布局管理器
CheckBoxMenuItem
Component
Component Component Component
List ScrollBar TextComponent TextArea TextField
PopupMenu
一、图形用户界面概述
4. Swing组件 组件 Swing是以AWT为基础构建的,javax.swing包提供了更加 丰富的、功能更强的Swing组件,它的大多数组件都是在AWT 组件前面加一个“J”,Swing组件的用法与AWT基本相同,也 使用AWT的事件处理机制,只是组件风格不同,同时也增加了 一些原来没有的组件特性。Swing组件无需同位体,故称为轻 组件。由于Swing组件在设计上和AWT完全不同,轻组件把与 显示组件有关的许多工作和处理事件的工作交给相应的java程 序完成,这些类被添加到Java的运行环境中,具有外观不依赖 平台的功能特性,且具有更高的性能。
方法 Frame() Frame(String title) setsize(int width,int height) setBackground(Color c) setVisible(boolean b) String getTitle() void setTitle(String title) Boolean isResizable() Image getIconImage() void setIconImage(Image img) setBounds(int x,int y,int width, int height) 功能 建立一个没有标题的Frame类对象 建立一个标题为title的Frame类对象 设置Frame对象的宽和高 设置Frame对象的背景色 设置Frame对象的可见性 获得Frame对象的标题 设置Frame对象的标题 测试窗口是否可以改变大小 返回窗口的最小化图标 设置Frame对象的最小化图标 设置Frame对象的大小和位置
一、图形用户界面概述
框架与面板
1. Frame框架 框架 框架是Window类的直接子类,因而框架是窗口的一种,是顶级窗口。 JFrame组件在Java的顶层窗口中可以独立使用,包含标题、边框、菜单等。 框架是一个容器,可以在这个容器中放入其他一些图形用户界面组件,如按 钮等,从而组成一个功能完善的程序。
一、图形用户界面概述
基本概念
1. 组件 组件是Java图形用户界面最基本的组成部分,是一个以可 视化的图形方式显示于屏幕上与用户进行交互的对象。Java中 包含许多的基本组件,如按钮、标签、滚动条、列表、单选/复 选框等等。 使用Java语言进行图形用户界面设计过程中,需要用到两 类组件,一类是AWT类的组件,另一类是Swing组件,AWT和 Swing都是Java设计GUI用户界面的基础。
}
一、图形用户界面概述
2. Panel面板 面板
Panel面板类为 面板类为Container类的子类,也是一种容器,可容 类的子类, 面板类为 类的子类 也是一种容器, 纳其它组件(使用 使用add()方法添加 ,但它不是顶层窗口,不能独 方法添加), 纳其它组件 使用 方法添加 但它不是顶层窗口, 立存在,必须被添加到其它容器中,所以一般创建一个Panel面 立存在,必须被添加到其它容器中,所以一般创建一个 面 板对象后,需将其放入Window和Frame中,这样才能看见 板对象后,需将其放入 和 中 Panel面板中的内容。该类中比较重要的方法如下: 面板中的内容。 面板中的内容 该类中比较重要的方法如下:
第六章 图形用户界面
一、图形用户界面概述 二、Swing常用组件 常用组件 三、事件处理 四、布局设计与边界 五、菜单设计 六、对话框设计 七、文字与图形处理
一、图形用户界面概述
Java语言提供了大量支持 语言提供了大量支持GUI设计的类,如按钮、菜单、 设计的类, 语言提供了大量支持 设计的类 如按钮、菜单、 列表、特性框、对话框等组件类,同时也提供了包含窗口、 列表、特性框、对话框等组件类,同时也提供了包含窗口、 面板等容器类。 的抽象工具集AWT和Swing中包含了很 面板等容器类。Java的抽象工具集 的抽象工具集 和 中包含了很 多类以支持GUI的设计。设计和实现图形用户界面的主要任 的设计。 多类以支持 的设计 务包括下面两个层次: 务包括下面两个层次: (1)创建组成界面的各成分和元素,指定它们的属性和位 创建组成界面的各成分和元素, 创建组成界面的各成分和元素 置关系,根据具体需要布局排列, 置关系,根据具体需要布局排列,以构成图形用户界面的外 观表现。 观表现。 (2)定义图形用户界面的事件和各界面元素所对不同事件 定义图形用户界面的事件和各界面元素所对不同事件 的响应,以实现图形用户界面与用户间的交互功能。 的响应,以实现图形用户界面与用户间的交互功能。