***Awt-学习***
一、Container容器
1. Container是Component的子类包括以下方法:
setLocation(int x,int y)
setSize(int w,int l)
setBounds(int x,int y,int w,int l)
setVisible(Boolean b)
Component add(Component c)
Component getComponentAt(int x,int y)
int getComponent()
Component[] getComponents()
2. 类型
Window和Pannel
3.Frame窗口(Window的子类)
有标题,允许通过拖拉改变大小和位置
初始化为不可见,可用setVisible设置可见
默认使用BorderLayout作为其布局管理器
4.Panel
一个典型的容器,不能独立存在需要放在其他容器中的容器,外在表现为一个矩形区域,可以存放其他组件。
5.ScrollPane
是一个带滚动条的容器,不能独立存在,当组件占用空间过大会自动产生滚动条,也可以设置默认具有滚动条。默认使用BorderLayout作为布局管理器,通常不允许改变布局管理器。
二、布局管理器
FlowLayout
1.特点
组件像水流一样从左往右,遇到边界就折回下一行重新开始。
2.构造器
FlowLayout() :默认
FlowLayout(int align):指定对齐方式
FlowLayout(int align,int hgap,int vgap):指定对齐方式,垂直、水平间距
BorderLayout
1.特点
BorderLayout将容器分为EAST、SOUTH、NORTH、CENTER、WEST五个区域,改变容器大小时,NORTH,SOUTH,CENTER水平调整,EAST,WEST,CENTER垂直调整。
2.构造器
BorderLayout()
BorderLayout(int hgap,int vgap)
GridLayout
1.特点
网格布局
2.构造器
GridLayout(int rows,int cols):行数与列数
GridLayout(int rows,int cols,int hgap,int vgap)
GridBagLayout
1.特点:
一个组件可以跨越多个网格,可以设置各网格的位置各不相同
CardLayout
1.特点:
它将加入的容器看成一叠卡片,只显示最上面的组件
2.构造器
CardLayout()
CardLayout(int hgap,int vgap)
3.提供的方法
first(Container c)
last(Container c)
privious(Container c)
nect(Container c)
show(Container c,String name)
BoxLayout(Swing中的)
1.特点
Swing引入了BoxLayout,它可以在垂直和水平两个方向上摆放GUI组件。
2.构造器
BoxLayout(Container t,int axis)
3.提供方法
createHorizontalGlue()
createVerticalGlue()
createHorizontalStrut(int width)
createVerticalStrut(int height)
createRigidArea(Dimension d)
package com.Demo;
import javax.swing.*;
import javax.swing.text.BoxView;
import java.awt.*;
public class Demo1{
Frame frame=new Frame("这里测试基本组件");
TextArea text=new TextArea(6,20);
Choice color=new Choice();
CheckboxGroup sex=new CheckboxGroup();
Checkbox male=new Checkbox("男",sex,true);
Checkbox female=new Checkbox("女",sex,false);
Checkbox marry=new Checkbox("是否已婚");
List colorChoice=new List(7,true);
TextField tf=new TextField(50);
Button button=new Button("确认");
public void consist(){
Box down=Box.createHorizontalBox();
down.add(tf);
down.add(button);
color.add("红色");
color.add("绿色");
color.add("蓝色");
Box up=Box.createHorizontalBox();
up.add(color);
up.add(male);
up.add(female);
up.add(marry);
Box left=Box.createVerticalBox();
left.add(text);
left.add(up);
frame.add(down,BorderLayout.SOUTH);
frame.add(left,BorderLayout.CENTER);
colorChoice.add("红色");
colorChoice.add("绿色");
colorChoice.add("蓝色");
frame.add(colorChoice,BorderLayout.EAST);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
new Demo1().consist();
}
}
三、常用组件
基本组件
对话框Dialog
1.Dialog是Window的子类,是一个可以独立存在的窗口
注意:(1)对话框需要有一个父窗口
(2)有non-modal和modal两种模式,modal下Dialog被打开时 Dialog总是位于parent窗口上且Dialog关闭前无法获得焦点。
2.fileDialog是Dialog的子类,文件对话框,用于打开或保存文件
四、事件处理机制
1.事件源:操作发生的场所
2.事件:在操作源上发生的操作
3.时间监听器:对事件进行处理
五、菜单组件
将菜单,菜单项,菜单条组合到一起按照一定布局放到容器中