第12章 图形界面设计
主要内容
一、图形用户界面
二、图形用户界面工具包(Swing)
三、创建组件 四、布局管理器
6
Swing
Java图形用户界面的基本元素主要由图形用户界面工 具包Swing提供。 Java图形用户界面的基本元素包括:
用户界面组件(组件类)、事件处理模块(事件类)、 图形和图像工具(图形类、图像类)、布局管理器(布 局类)等。
5、图像图标类
图像图标类ImageIcon
Java语言使用javax.swing.ImageIcon类表示图标 支持3种图像格式:GIF、JPEG、PNG
Image im=(new ImageIcon("中国心.jpg")).getImage();
//创建图标对象im
jfrm. setIconImage(im);
包中.
(3)组件类(component class)
所有Swing
GUI组件类(除JFrame、JApplet和 JDialog)都是JComponent类的子类 JComboBox、JList、JRadioButton和JMenu等
例如,JButton、JTextField、JTextArea、
2、框架类JFrame
框架窗口的创建。
import java.awt.Color; //加载java.awt包里的颜色类Color import java.awt.Image; //加载java.awt包里的图像类Image import javax.swing.*; //加载javax.swing包里的所有类 public class App12_1 { static JFrame jfrm=new JFrame("这是个Swing程序"); //创建静态框架并设置标题 public static void main(String[] args) { JLabel lab=new JLabel("我是一个标签"); //创建一个标签对象lab Image im=(new ImageIcon("中国心.jpg")).getImage(); //创建图标对象im jfrm. setIconImage(im); //设置窗口的显示图标 jfrm.setSize(250,140); //设置框架大小 jfrm.setBackground(Color.YELLOW); //设置框架背景颜色为黄色 jfrm.setLocation(260,150); //设置窗口的位置 jfrm.add(lab); jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jfrm.setVisible(true); } }
public void setForeground(Color c) public Color getForeground( )
4、字体类
字体类Font 用来规范组件所用的字体样式、大小与字形等。 构造方法: Font (String font_name, int style, int size)
Swing容器的层次关系
一般的Swing窗口,实际上包含几个“层次”
它是Java应用程序的顶层容器。
顶层容器JFrame 根窗格 分层窗格 内容窗格 玻璃窗格
2、框架类JFrame
JFrame特点
JFrame的内容窗格利用getContentPane()方法获 取的Container类的对象。 JFrame类对象显示效果是一个“窗口”,带有标题 栏和尺寸重置角标 iconImage图标对象。图像类型是image,使用 ImageIcon类创建图标对象。 JMenuBar是框架的可选菜单 默认为不可见,setVisible(true)方法使之可见 默认的布局管理器是BorderLayout,使用 setLayout()方法改变布局 其他方法:setLocation()、setSize()、setBounds()
3、颜色类
用Color类的对象来控制
每个Color对象代表一种颜色,用户可以直接使用Color 类中定义好的颜色常量 也可以通过调配红、绿、蓝三色的比例创建自己的Color 对象 Color类中定义有如下的三种构造函数 public Color(int Red, int Green, int Blue); public Color(float Red, float Green, float Blue); public Color(int RGB);
非顶层容器,不能独立存在,不是独立的窗口,它们
必须位于窗口之内,非顶层容器包括JPanel及 JScrollPanel等
一般独立应用程序使用JFrame,在上面放置Jpanel
面板
如果应用到浏览器中,使用JApplet
1、Swing组件分类
(2)辅助类(helper class)
用来描述组件属性的,辅助类通常包含在java.awt
抽象窗口 工具集
awt的扩展,根据 给定环境调整外观 和感觉。
图形用户界面
1996年,Sun公司和Netsacpe公司在一个称为Swing的 项目中合作完善了Netsacpe公司原来开发的一套GUI库 ,也就是现在所谓的Swing组件。 JFC(Java Foundation Class)的概念是在1997年的 JavaOne开发者大会上首次提出的,是指用于构建GUI的 一组API。 实际上,Swing只是JFC的一部分,其他的还有二维图形 (Java 2D)API以及拖放(Drag and Drop)API等。
它们主要在javax.swing包中。 java组件类的继承关系见教材图12.1
1、Swing组件分类
构成图形用户界面的类可以分为三组:
(1)容器类(container class),包含其他组件的类
顶层容器,能独立存在,是可以独立的窗口,JFrame
,JApplet,JDialog
字体名称 字形样式:PLAIN、 BOLD、ITALIC 字号大小
Java.awt包中的常用类: import java.awt.Font; 设置字体:组件.setFont(Font font);
Font fnt=new Font("Serief",Font.BOLD+Font.ITALIC,20); frm.setFont(fnt);
Jpanel可以容纳其他组件,一般用于布局和定位
默认的布局管理器FlowLayout,可以使用 setLayout()改变默认布局管理器
import javax.swing.*; //加载javax.swing包里的所有类 import javax.swing.border.TitledBorder; //加载javax.swing.border包里的 TitledBorder类 public class App12_2 { public static void main(String[] args) { JFrame jfrm=new JFrame("我的框架"); //创建框架对象jfrm jfrm.setSize(210,180); jfrm.setLocation(500,400); JPanel jpan=new JPanel(); //创建面板对象jpan jpan.setSize(120,90); jpan.setLocation(40,30); JButton bun=new JButton("点击我"); //创建命令按钮对象bun bun.setSize(80,20); bun.setLocation(20,30); jfrm.setLayout(null); //取消窗口jfrm的默认布局管理器 jpan.setLayout(null); //取消面板jpan的默认布局管理器 jpan.add(bun); //将命令按钮加入到面板中 jpan.setBorder(new TitledBorder("面板区")); //为面板对象jpan设置边框 jfrm.add(jpan); //将面板对象jpan加入到窗口中 jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jfrm.setVisible(true); } }
2、框架类JFrame
jfrm.setSize(250,140); //设置框架大小
jfrm.setLocation(260,150);
//设置窗口的位置
(0,0)
150
260
140
250
3、JPan有边框的中间层容器
面板不是顶层容器,必须放到其他容器内,也可以放入 另一个面板内。
图形用户界面
Swing工具包作为AWT的扩展,并以AWT为基础
Swing跨平台的灵活性,可以根据给定环境而调整他们的 外观和感觉。
重型组件
AWT组件通常称为重型组件,因为它在运行时需要一个与平 台相关的本地组件为之服务。
轻型组件
Swing组件是纯Java编写的,不直接使用本地组件,所以 通常称为轻型组件。 Swing组件类的名字开头都有前缀”J”
Java.awt包中的常用类: import java.awt.Color;
3、颜色类
不论用哪个构造函数创建Color对象,都指定新建颜色中 R(红)、G(绿)、B(蓝)三色的比例 public Color(int Red, int Green, int Blue); 通过三个整型参数指定R,G,B,每个参数的取值范围 在0~255之间 public Color(float Red, float Green, float Blue); 例如下面的语句创建的是蓝色 Color blueColor = new Color(0,0,255); 通过三个浮点参数指定R,G,B,每个参数的取值范围 在0.0~1.0之间 public Color(int RGB); 通过一个整型参数指明其RGB三色比例 这个参数的0~7比特(取值范围为0~255)代表红色的比 例,8~15比特代表绿色的比例,16~23比特代表蓝色 的比例。