程序被设计出来,为了方便用户使用,一定是需要界面设计的
GUI技术以及支持包:
AWT:提供大量类和接口
Swing 是一个为Java设计的GUI工具包,JAVA基础类的一部分。Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。
AWT:java.awt
包
Swing:javax.swing
包
本篇作为上篇,先介绍组件容器与布局管理器等知识点
创建图形用户界面的一般步骤:
创建容器–设置布局管理器–添加组件–事件处理
常用的组件与容器
Swing中的容器分类:
1.顶级容器:一般是一个顶层窗口(框架)
JFrame:用于框架窗口的类,应用程序至少使用一个框架窗口
JDialog:用于对话框的类
2.中间容器
JPanel:面板,是最灵活最常用的中间容器
JScrollPane:与JPanel类似,但还可以在大的组件或可扩展组件周围提供滚动条
JToolBar:按行或列排列一组组件(通常是按钮)
JFrame
在Swing程序中创建顶层窗口,允许将标签、按钮、文本框等组件添加其中
所有的JFrame框架顶层都有一个JRootPane面板,对于具有单一面板的窗体(JFrame),可以使用getContentPane()方法取得,并使用add()方法将组件加到面板上。
setResizable(false)可以使最大化按钮失效
默认情况下,当用户关闭一个框架时,该框架会隐藏起来,而程序不会终止
dispose关闭窗口,并回收该窗口的所有资源(Windows)
参考示例:
import javax.swing.*;
public class Main {
public static void main(String[] args) {
JFrame f = new JFrame("第一个java窗口"); //创建容器
f.setSize(300,200); //设置容器大小
f.setLocationRelativeTo(null); //框架居中
f.setVisible(true); //设置框架可见性
f.setResizable(false); //设置不能改变框架大小
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
运行之后的效果如图所示:
若想要改变框架的颜色,不能直接设置,必须设置框架内置的面板的颜色,如下所示:
f.getContentPane().setBackground(Color.BLACK);
窗口就变成了
JPanel
JPanel面板是中间容器,没有标题,不能独立存在,必须将其添加到其它容器中。
面板与框架类似,也是一种容器,可以容纳其它GUI组件
JPanel类具有两个有用的特性:
本身是一个中间容器,能够容纳按钮、滚动条、文本框等用户界面元素;
有一个能够在上面进行绘制的表面,用来画文本和图形。
注意:坐标原点(0,0)在屏幕(或组件)的左上角,坐标单位是像素
参考示例:
import javax.swing.*;
import java.awt.Color;
public class Main {
public static void main(String[] args) {
JFrame f = new JFrame("JPanel示例"); //创建容器
f.setSize(300,200); //设置容器大小
f.setLayout(null); //将布局管理器设为null
JPanel panel = new JPanel(); //创建面板
panel.setSize(150,100); //设置面板的宽和高
panel.setBackground(Color.CYAN); //设置面板的背景色
f.add(panel); //将面板添加到f中
f.setVisible(true); //设置框架可见性
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
运行之后效果如图所示:
JButton
JButton(按钮)是常用组件之一,可以显示文本或图标
创建文本按钮:
JButton button = new JButton("确定");
创建图标按钮:
ImageIcon imageIcon = new ImageIcon("pict.jpg");
imageIcon.setImage(imageIcon.getImage().getScaledInstance(40,20,Image.SCALE_DEFAULT));
JButton button = new JButton(