回到顶部
您的当前位置: 编程语言> JAVA> JAVA基础> 系列教程
Java基础(二十二)图形用户界面基础
2014-03-27 09:44:10
标签: 网络整理 Java 基础 图形用户界面基础

为Java GUI程序设计而设计的API是应用面向对象原理的绝佳范例。

一:Swing和AWT

介绍Java的时候,将图形用户界面相关的类捆绑在一起,放在一个称为抽象窗口工具箱(Abstract Window Toolkit,AWT)的库中。AWT适合开发简单的图形用户界面但并不适合开发复杂的GUI项目。除此之外,AWT更容易发生与特定平台相关的故障。

AWT的用户界面组件就被一种更稳定、更通用和更灵活的库取代,这种库称为Swing组件库。Swing组件更少地依赖于目标平台并且更少地使用自己的GUI资源。

因此,不依赖于自己的GUI的Swing组件称为轻量级组件,而AWT组件称为重量级组件。

二:Java GUI API

GUI API包含的类可以分为三个组:组件类、容器类、和辅助类。

1)组件类是用来创建用户界面的

2)容器类是用来包含其他组件的

3)辅助类是用来支持GUI组件的

三:框架

创建一个用户界面需要创建一个框架或一个applet来存放用户界面组件。

1)创建一个框架

使用JFrame类创建一个框架:

MyFrame.java
import javax.swing.JFrame;
public class MyFrame {
  public static void main(String[] args) {
    JFrame frame = JFrame("MyFrame");//Create a frame
    frame.setSize(400,300);//Set the size
    frame.setLocationRelativeTo(null);//Center a frame
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);//Display the frame
  }
}

2)向框架中添加组件

可以使用add方法在框架中添加组件。

MyFrameWithComponents.java
import javax.swing.*;
public class MyFrameWithComponents {
  public static void main(String[] args) {
    JFrame frame = new JFrame("MyFrameWithComponents");
    //Add a button into the frame
    JButton jbtOK = new JButton("OK");
    frame.add(jbtOK);
    frame.setSize(400,300);//Set the size
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null);//Center a frame
    frame.setVisible(true);
  }
}

每个JFrame都包含一个内容窗格。

四:布局管理器

在许多其他窗口系统中,用户界面组件是通过使用硬编码的像素度量管理的。

三种基本布局管理器:FlowLayout、GridLayout、BorderLayout。

1)FlowLayout

FlowLayout是最简单的布局管理器。按照组件添加的顺序,从左到右地将组件排列在容器中。当放满一行时,就开始新的一行。可以使用三个常量FlowLayout.RIGHT、FlowLayout.CENTER和FlowLayout.LEFT之一来指定组价的对齐方式。还可以指定组件之间以像素为单位的间隔。

2)GridLayout

GridLayout管理器以网络(矩阵)的形式管理组件。组件按照它们添加的顺序从左到右排列,先是第一行,接着是第二行,以此类推。

可以指定网络中的行数和列数。基本规则如下:

① 行数和列数可以为零,但不能两者都为零。如果一个为零另一个不为零,那么不为零的行或列的大小已经固定,而为零的行或列的大小由布局管理器动态地决定。

②如果行数和列数都不为零,那么行数就是主导参数;也就是说,行数是固定的,布局管理器会动态地计算列数。

3)BorderLayout

BorderLayout管理器将容器分为五个区域:东区、南区、西区、北区和中央。

组件根据它们最适合的尺寸和它们在容器中的位置来放置。南、北组件可以水平拉伸;东、西组件可以垂直拉伸;中央组件既可以水平拉伸也可以竖直拉伸以填充空白空间。

五:图像图标

图标是一个大小固定的图片;通常情况下它都比较小,用来装饰组件。图像通常用来存储在图像文件中。Java目前支持三种图像格式:GIF(图像交换格式)、JPEG(联合图像专家组)、以及PNG(便携网络图片)。这些类型的图像文件名分别以.gif、.jpg和.png结尾。

Color类

可以使用java.awt.Color类为GUI组件设置颜色。

Font类

可以使用java.awt.Font类创建一种字体。