一、AWT简介
AWT主要分为三类
1.组件:Component
2.容器;Frame
3.布局管理器:LayoutManager
二、Swing简介
Swing都保存在javax.swing中,所有组件都是从JCompent中扩展出来的。此类实际上是java.awt.Component的子类。如图所示
三、基本容器JFrame
JFrame类的常用操作方法
方法 | 类型 | 描述 |
public JFrame() throws HeadlessException | 构造 | 创建一个普通的窗体对象 |
public JFrame(String title)throws HeadlessException | 构造 | 创建一个窗体对象,并指定标题 |
public void setSize(int width,int heigth) | 普通 | 设置窗体大小 |
public void setSize(Dimension d) | 普通 | 通过Dimension设置窗体大小 |
public void setBackground(Color c) | 普通 | 设置窗体的背景颜色 |
public void setLocation(int x,int y); | 普通 | 设置组件的显示位置 |
public void setLocation(point p) | 普通 | 通过Point来设置组件的显示位置 |
public void setVisible(boolean b) | 普通 | 显示或隐藏组件 |
public Component add(Component comp) | 普通 | 向容器中增加组件 |
public void setLayout(LayoutManager mgr) | 普通 | 设置布局管理器,如果设置为null表示不使用 |
public void pack() | 普通 | 调整窗口大小,以适合其子组件的首选大小和布局 |
public Container getContentpane() | 普通 | 返回此窗体的容器对象 |
注意点:
JFrame类构造器创建的窗体是不可见的,需要开发人员别写特定的代码才可见,(很多对窗体的操作要在可视之前对其进行完成,否则就会在运行时抛出异常)=>true
Dimension类的常用方法
方法 | 类型 | 描述 |
public Dimension() | 构造 | 创建一个Dimension |
public void setSize(double width,double height) | 普通 | 设置显示的宽和高 |
public void setSize(int width,int heigth) | 普通 | 设置显示的宽和高 |
public double getWidth() | 普通 | 返回组件的宽 |
public double getHight() | 普通 | 返回组件的高 |
个人理解:表示一个(单个)组件的大小(该类封装了一个构件的高度和宽度)该类的高度、宽度值都是一个整数,表明有多少个像素点。多用于表示 GUI 控件等的大小。
point类的常用方法
方法 | 类型 | 描述 |
public Point() | 构造 | 在坐标原点创建对象 |
public Point(int x,int y) | 构造 | 在指定的坐标的创建对象 |
public void setLocation(int x.int y) | 普通 | 设置X、Y坐标 |
public void setLocation(double x,double y) | 普通 | 设置X、Y坐标 |
public void move(int x,int y) | 普通 | 将此组件移动到指定的坐标位置,此方法与setLocation(int,int)相同 |
public void translate(int dx,int dy) | 普通 | p平移(x,y)位置的点,沿x轴平移dx,沿y轴平移dy,移动后得到点(x+dx,y+dy) |
asd
四、标签组件JLabel
1.使用一个标签
JFrame frame = new JFrame("WWW.baidu.com"); JLabel b = new JLabel("妈妈",JLabel.CENTER); frame.add(b); frame.setSize(300,160); frame.setLocation(300,200); frame.setVisible(true);
2.在JLabel中设置图片
方法 | 类型 | 描述 |
public ImageIcon(byte[] imageData) | 构造 | 将保存图片信息的byte数组设置到ImageIcon中 |
public ImageIcon(String filename) | 构造 | 通过文件名称创建ImageIcon对象 |
public ImageIcon(String filename,String description) | 构造 | 设置图片路径以及图片的简单描述 |
五.按钮组件
JButton but = new JButton("按钮")
六.布局管理器
FlowLayout类
使用此布局方式会使所有组件像流水一样一次进行排列
BorderLayout类
将一个窗体的版面划分成为东,西,南,北中五个区域
GridLayout
表格形式排列,使用此布局时候必须设置显示的行数和列数
CardLayout
将一组件彼此重叠地进行布局,就像一张张卡片一样,这样每次都只会展示一个界面。
绝对定位
如果不想在窗体中指定布局管理器,也可以设置坐标的方式完成布局,在Component中提供了setBounds()方法,可以定位一个组件的坐标,使用X、Y的坐标表示方式,此方法定义如下
public void setBounds(int x,int y,int width,int hight)