第十一周课程总结
Java的图形界面:
一、AWT
1、AWT(Abstract Windowing Toolkit):抽象窗口工具包,是Java提供的用来建立和设置Java图形用户界面的基本工具。
AWT中的所有工具都保存在java.awt包中。
2、容器:所有的AWT组件都应该放在容器中,并可以设置其位置、大小等,所有的容器都是Component的子类。
3、组件:组件类都是从Component和MenuComponent拓展而来。
4、布局管理器:可以使容器中组件按照指定的位置进行摆放,另外一个的优点是:即使容器改变了大小,布局管理器也可以
准确地组件放到指定的位置。
二、Swing
1、Swing使用Java的语言实现,是以AWT平台为基础构建起来的新组件,直接使用Swing可以更加轻松的构建用户图形界面。
2、Java中Swing都是保存在java.swing包中。
3、Swing中所有的容器都是继承AWT组件包
创建一个窗口
import java.awt.*;
import java.io.*;
import javax.swing.*;
public class JavaSwingTest {
public static void main(String args[]) throws IOException{
test1();
}
//创建一个新的窗体
public static void test1(){
JFrame f=new JFrame("第一个Swing窗口");//实例化窗体对象
f.setSize(230,80);//设置窗体大小
f.setBackground(Color.WHITE);//设置窗体的背景颜色
f.setLocation(1000,600);//设置窗体的显示位置
f.setVisible(true);//让组建显示
}
以上最重要的是f.setVisible(true);如果没有这一步,窗体就不会显示。是不是有点小激动,其实这没什么,后面还有很多。
在JFrame中也可以使用Dimension类设置窗体的大小,此类封装的组件显示高度和宽度,除了设置组件大小可以使用Dimension类,对于组件的显示位置也存在一个Point类,此类封装的是现实位置X,Y坐标
实例:
//使用Dimension和Point类设置组件大小和显示位置
public static void test2(){
JFrame f=new JFrame("第一个Swing窗口");
Dimension d=new Dimension();//实例化Dimension对象
d.setSize(400,200);
f.setSize(d);
f.setBackground(Color.WHITE);
Point p=new Point();//实例化Point对象
p.setLocation(300,200);
f.setLocation(p);
f.setVisible(true);
}
调用该方法运行后效果如下:
实例:
//使用Dimension和Point类设置组件大小和显示位置
public static void test2(){
JFrame f=new JFrame("第一个Swing窗口");
Dimension d=new Dimension();//实例化Dimension对象
d.setSize(400,200);
f.setSize(d);
f.setBackground(Color.WHITE);
Point p=new Point();//实例化Point对象
p.setLocation(300,200);
f.setLocation(p);
f.setVisible(true);
}
标签组件:JLabel
JLabel组件表示的是一个标签,本身是用于显示信息的,创建完的Label对象可以通过Container类中的add方法加入到容器中
实例:
//使用一个标签JLable
public static void test3(){
JFrame f=new JFrame("Welcome to 密讯");
Dimension d=new Dimension();//实例化Dimension对象
JLabel lab=new JLabel("MichaelLee",JLabel.CENTER);
f.add(lab);
d.setSize(400,200);
f.setSize(d);
f.setBackground(Color.WHITE);
Point p=new Point();//实例化Point对象
p.setLocation(300,200);
f.setLocation(p);
f.setVisible(true);
}
//更改JLabel的文字样式,设置标签的显示字体,大小,背景颜色
public static void test4(){
JFrame f=new JFrame("Welcome to 密讯");
Dimension d=new Dimension();//实例化Dimension对象
JLabel lab=new JLabel("MichaelLee",JLabel.CENTER);
Font font=new Font("隶书",Font.ITALIC+Font.BOLD,28);
lab.setForeground(Color.RED);
lab.setFont(font);
f.add(lab);
d.setSize(400,200);
f.setSize(d);
f.setBackground(Color.WHITE);
Point p=new Point();//实例化Point对象
p.setLocation(300,200);
f.setLocation(p);
f.setVisible(true);
}
按钮组件:JButton
JButton组件是在窗体中添加一个按钮
//按钮组件,建立一个普通的按钮
public static void test7(){
JFrame jf=new JFrame("Welcome to MichaelLee!");
JButton jb=new JButton("按我");
jb.setBounds(100,100,200,200);
Font font=new Font("serif",Font.BOLD,28);
jb.setFont(font);
jf.add(jb);
jf.setSize(400,300);
jf.setLocation(400,400);
jf.setVisible(true);
}
JButton也可以为按钮设置一张图片:
//在按钮上显示图片
public static void test8(){
JFrame jf=new JFrame("Welcome to MichaelLee!");
String picPath="E:"+File.separator+"图片"+File.separator+"sunyanzi.jpg";
Icon icon=new ImageIcon(picPath,"!");
JButton jb=new JButton(icon);
jb.setBounds(200,200,200,200);
Font font=new Font("serif",Font.BOLD,28);
jb.setFont(font);
jf.add(jb);
jf.setSize(800,600);
jf.setLocation(500,300);
jf.setVisible(true);
}
4、布局管理器
1)FlowLayout(流式布局管理器)默认居中按照顺序依次排列
2)BorderLayout 将窗体依次分为东西南北中5个区域
3)GrideLayout 以表格形式进行管理,必须设置显示行数和列数(先满足行,再调列)
4)CardLayout 一组组件彼此重叠进行布局,每次只会显示一个界面
5)绝对布局 通过坐标指定组件放置的位置,窗体大小改变,组件位置也不会改变