本周进入了图形界面的学习,讲了AWT,Swing,基本容器JFrame,标签组件JLabel,按钮组件JButton,讲了几种布局管理器,绝对定位。
AWT
AWT大量使用windows函数,被称为重量级组件。
在AWT包中提供的所有工具包主要分为三种:
1.组件:component。
2.容器:Container。
3.布局管理器:LayoutManager。
AWT中所有组件都是从Component个MenuComponent扩展而来
Swing
Swing使用java语言实现,是以AWT平台为基础构建起来的新组件,称为轻量级组件。Swing中依然可以使用AWT的各个布局管理器,因Swing可跨平台,下面主要讲Swing的容器等等。
基本容器JFrame
JFrame是Component的子类。
在JFrame中使用Dimension类设置窗体的大小
还有一个Point类设置窗体位置
在Frame类的构造方法抛出了一个异常,但是并没有处理,因为抛出的是一个HerdlessException是RunTimeException的子类,可以不处理
标签组件JLabel
JLabel组件表示的是一个标签,本身是用于显示信息的,一般不能直接更改其显示内容。Lab了对象用Container类中的add()方法加入容器。
更改JLabel的文字样式
更改字体可以使用Component类中定义的setFont(Font f)方法
在JLabel中设置图片
直接使用Icon接口以及ImageIcon子类即可
按钮组件JButton
JBtton组件表示一个普通的按钮,使用此类可以直接在窗体中增加一个按钮。
布局管理器
如果部队窗体进行版面设置,则一个组件就会布满整个窗体,在Swing中所有的布局管理器都实现LayoutManager接口。
FlowLayout
FlowLayout属于流式布局管理器,使用此方法布局会使所有的组件像流水一样依次进行排列
BorderLayout
BorderLayout将一个窗体划分成东西南北中五个区域,可以直接将需要的组件放入其中,不过一本不会这样而是在其中放入容器。
GridLayout
GridLayout布局管理器是以表格进行管理的,在使用此布局管理器的时候必须要设置显示的行数的列数。
GardLayout
GardLayout是将一组组件彼此重叠地进行布局,就像一张张卡片一样,每次只会展示一个界面。
绝对定位
在Component中提供了setBounds()方法,可以定位一个组件地坐标
public void setBounds(int x,int y,int width,int height)
绝对定位好处是,不管窗体大小如何改,组件位置是不变的,之前地各种中,组件大小会跟着改变。
作业
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Chuangko1 {
public static void main(String args[]) {
JFrame frame = new JFrame("第一个窗口");
frame.setLayout(new FlowLayout(FlowLayout.CENTER,3,3));
JButton but = null;
for(int i = 1;i <= 9;i ++) {
but = new JButton(""+i);
frame.add(but);
}
frame.setSize(150,150);
frame.setVisible(true);
}
}