《图形用户界面》
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
paintComponent方法是自动执行的,当窗口需要被重新 绘制时,如用户缩放窗口,或还原已最小化的窗口时,系统 就会自动调用该方法。
在框架中显示文本信息的方法: g.drawString(text, x, y)
实用文档
Fra Baidu bibliotek
【例7.3】 在框架中显示信息(例题7_1(3)) 程序代码见HelloWorld .java。运行结果如下:
//设置用户关闭框架时的响应动作
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//参见http://java.sun.com/j2se/1.4.2/docs/api/index.html
//显示该框架
frame.show();
}
}
class SimpleFrame extends JFrame
❖setTitle——设置窗口中标题栏的文字。 ❖setResizable——设置用户是否可以改变框架大小。 ❖dispose方法——关闭窗口,并回收该窗口的所有资源。 ❖setLocation——设置组件的位置。 ❖setBounds——重新设置组件的大小和位置。
实用文档
【例7.2】 框架外观的设置(例题7_1(2)) 设置具有以下特征的框架:
实用文档
7.2 简单图形用户界面 7.2.1 第一个图形用户界面
在Java中,顶层窗口称为框架。在AWT库中,对应于框架的 类是Frame,在Swing库中,相应的类是JFrame。JFrame类扩展 了Frame类。大部分AWT组件在Swing中都有等价的组件,它们 在表示形式上差一个“J”。
框架是一个容器,我们可以在这个容器中放入其他一些图 形用户界面组件,如按钮、菜单等,从而组成一个功能完善的 程序。
实用文档
【例7.1】 显示一个空框架 (例题7_1(1))
import javax.swing.*; public class FirstFrame
{
public static void main(String[] args)
{
SimpleFrame frame = new SimpleFrame();
第七章 图形用户界面的设计与实现
学习导读
首先,我们学习一些基本的图形编程知 识,包括窗口的显示及外观设置、在窗口中显 示文字和图像等;
接下来,介绍Java的事件处理机制,例如 如何在程序中接收并处理如键盘按键和鼠标点 击等“事件”;
最后,系统地介绍图形用户界面中常用组 件的用法,如布局管理器、文本框、复选框、 菜单、对话框等。
//得到JFrame的内容窗格对象
Container contentPane = getContentPane();
Component c = ...; 等组件
//如JButton、JLabel
//将组件加入到内容窗格中
contentPane.add(c);
面板JPanel类本身是容器,它可以容纳其他图形用户界面 元素,如按钮、菜单等。 实用文档
在Java1.2中,Sun公司推出了新的用户界面库:Swing。相 对AWT来说,Swing功能更强大、使用更方便,它的出现使得 Java的图形用户界面上了一个台阶。
但是,Swing并没有代替AWT。在Java1.1中,AWT事件处理 模型有了根本改变。Swing使用的仍然是Java1.1的事件处理模 型。
为 了 在 面 板 中 进 行 绘 制 , 需 要 重 载 JComponent 类 的 paintComponent方法。
class MyPanel extends Jpanel {
public void paintComponent(Graphics g) {
super.paintComponent(g); ...//相关的绘制代码 } }
{ public SimpleFrame()
运行结果
{
//设置框架大小
setSize(WIDTH, HEIGHT);
}
public static final int WIDTH = 300;
public static final int HEIGHT = 200; 实用文档
}
7.2.2 框架外观
Object
Component
Container
Window
Frame
JFrame类的实继用承文档层次图
JFrame
Component类是所有GUI对象的祖先,Window类是Frame类的 父类,JFrame类直接从Frame继承而来。对于框架外观的操作 比较重要的方法如下:
❖setIconImage——窗口最小化(在Java中称为图标化) 时,把一个Image对象用作图标。
实用文档
7.2.4 文本和字体 (例题7_1(3))
通过Font类对象设置字体。
Font StringFont = new Font (“宋体”, Font.ITALIC, 20 );
字体风格有以下几种选项:
❖ Font.PLAIN
//常规
❖ Font.BOLD
//加粗
❖ 它的高度和宽度为整个屏幕的1/3; ❖ 自定义窗口的标题和图标; ❖ 窗口的大小不可变。 程序代码见FrameSizeSet.java。运行结果如下:
图标
标题
最大化按钮 失效
实用文档
7.2.3 在框架中显示信息
JFrame 包 含 了 四 个 窗 格 : RootPane 、 LayeredPane 、 GlassPane和ContentPane。如果需要将一些图形用户界面元素 加入到框架中,我们需要在面板组件(JPanel)中进行绘制, 然后将该面板组件加入到框架的内容窗格(ContentPane)中。 相应的代码如下:
实用文档
教学重点与难点:
❖ 框架的组成及外观 ❖ 在框架中显示文本和图形 ❖ 字体和颜色的设置 ❖ Java的事件处理机制 ❖ 窗口事件、焦点事件、键盘事件、鼠标事件
的处理 ❖ Swing各种组件的用法
实用文档
7.1 图形用户界面概述
Java1.0的出现带来了抽象窗口工具箱(AWT)。设计目标是 希望构建一个通用的GUI,使得利用它编写的程序能够运行在 所有的平台上,以实现Sun公司提出的口号“一次编写,随处 运行”。
在框架中显示文本信息的方法: g.drawString(text, x, y)
实用文档
Fra Baidu bibliotek
【例7.3】 在框架中显示信息(例题7_1(3)) 程序代码见HelloWorld .java。运行结果如下:
//设置用户关闭框架时的响应动作
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//参见http://java.sun.com/j2se/1.4.2/docs/api/index.html
//显示该框架
frame.show();
}
}
class SimpleFrame extends JFrame
❖setTitle——设置窗口中标题栏的文字。 ❖setResizable——设置用户是否可以改变框架大小。 ❖dispose方法——关闭窗口,并回收该窗口的所有资源。 ❖setLocation——设置组件的位置。 ❖setBounds——重新设置组件的大小和位置。
实用文档
【例7.2】 框架外观的设置(例题7_1(2)) 设置具有以下特征的框架:
实用文档
7.2 简单图形用户界面 7.2.1 第一个图形用户界面
在Java中,顶层窗口称为框架。在AWT库中,对应于框架的 类是Frame,在Swing库中,相应的类是JFrame。JFrame类扩展 了Frame类。大部分AWT组件在Swing中都有等价的组件,它们 在表示形式上差一个“J”。
框架是一个容器,我们可以在这个容器中放入其他一些图 形用户界面组件,如按钮、菜单等,从而组成一个功能完善的 程序。
实用文档
【例7.1】 显示一个空框架 (例题7_1(1))
import javax.swing.*; public class FirstFrame
{
public static void main(String[] args)
{
SimpleFrame frame = new SimpleFrame();
第七章 图形用户界面的设计与实现
学习导读
首先,我们学习一些基本的图形编程知 识,包括窗口的显示及外观设置、在窗口中显 示文字和图像等;
接下来,介绍Java的事件处理机制,例如 如何在程序中接收并处理如键盘按键和鼠标点 击等“事件”;
最后,系统地介绍图形用户界面中常用组 件的用法,如布局管理器、文本框、复选框、 菜单、对话框等。
//得到JFrame的内容窗格对象
Container contentPane = getContentPane();
Component c = ...; 等组件
//如JButton、JLabel
//将组件加入到内容窗格中
contentPane.add(c);
面板JPanel类本身是容器,它可以容纳其他图形用户界面 元素,如按钮、菜单等。 实用文档
在Java1.2中,Sun公司推出了新的用户界面库:Swing。相 对AWT来说,Swing功能更强大、使用更方便,它的出现使得 Java的图形用户界面上了一个台阶。
但是,Swing并没有代替AWT。在Java1.1中,AWT事件处理 模型有了根本改变。Swing使用的仍然是Java1.1的事件处理模 型。
为 了 在 面 板 中 进 行 绘 制 , 需 要 重 载 JComponent 类 的 paintComponent方法。
class MyPanel extends Jpanel {
public void paintComponent(Graphics g) {
super.paintComponent(g); ...//相关的绘制代码 } }
{ public SimpleFrame()
运行结果
{
//设置框架大小
setSize(WIDTH, HEIGHT);
}
public static final int WIDTH = 300;
public static final int HEIGHT = 200; 实用文档
}
7.2.2 框架外观
Object
Component
Container
Window
Frame
JFrame类的实继用承文档层次图
JFrame
Component类是所有GUI对象的祖先,Window类是Frame类的 父类,JFrame类直接从Frame继承而来。对于框架外观的操作 比较重要的方法如下:
❖setIconImage——窗口最小化(在Java中称为图标化) 时,把一个Image对象用作图标。
实用文档
7.2.4 文本和字体 (例题7_1(3))
通过Font类对象设置字体。
Font StringFont = new Font (“宋体”, Font.ITALIC, 20 );
字体风格有以下几种选项:
❖ Font.PLAIN
//常规
❖ Font.BOLD
//加粗
❖ 它的高度和宽度为整个屏幕的1/3; ❖ 自定义窗口的标题和图标; ❖ 窗口的大小不可变。 程序代码见FrameSizeSet.java。运行结果如下:
图标
标题
最大化按钮 失效
实用文档
7.2.3 在框架中显示信息
JFrame 包 含 了 四 个 窗 格 : RootPane 、 LayeredPane 、 GlassPane和ContentPane。如果需要将一些图形用户界面元素 加入到框架中,我们需要在面板组件(JPanel)中进行绘制, 然后将该面板组件加入到框架的内容窗格(ContentPane)中。 相应的代码如下:
实用文档
教学重点与难点:
❖ 框架的组成及外观 ❖ 在框架中显示文本和图形 ❖ 字体和颜色的设置 ❖ Java的事件处理机制 ❖ 窗口事件、焦点事件、键盘事件、鼠标事件
的处理 ❖ Swing各种组件的用法
实用文档
7.1 图形用户界面概述
Java1.0的出现带来了抽象窗口工具箱(AWT)。设计目标是 希望构建一个通用的GUI,使得利用它编写的程序能够运行在 所有的平台上,以实现Sun公司提出的口号“一次编写,随处 运行”。