awt 容器有布局,再add组件,线程,(举例:烟花)
组件; 容器(Container)也是一个类,实际上是Component的子类,因此容器本身也是一个组件,具有组件的所有性质,但是它的主要功能是容纳其它组件和容器。布局管理器(LayoutManager):每个容器都有一个布局管理器,当容器需要对某个组件进行定位或判断其大小尺寸时,就会调用其对应的布局管理器。
Component
Container
Panel windows(Frame Dialog)
Panel对应的类为java.awt.Panel,它可包含其他Container类型的组件,或包含在浏览器窗口中。Panel标识了一个矩形区域,该区域允许其他组件放入。Panel必须放在Window或其子类中才能显示。
AWT的标准布局管理器有以下五种:
1.FlowLayout:该布局管理器将组件从左到右或从上到下放置,是Panel和applet的默认布局管理器;
2.BorderLayout:该布局管理器将组件分为东、西、南、北、中五个区域,是Windows、 Dialog和Frame容器的默认布局管理器;
3.CardLayout:该布局管理器将加入到容器的组件作为卡片,把每个组件放置在一个单独的卡片上,后面的卡片将覆盖前面的卡片,每次只能看到一张卡片;
4.GridLayout:该布局管理器将容器分为相同尺寸的网格,将组件依次放入网格中;
5.GridBagLayout:该布局管理器将容器分为相同尺寸的网格,但组件不只是占一个网格,一个组件可以占多个网格位置;
f = new Frame("GUI example");
f.setLayout(new FlowLayout());//设置布局管理器为FlowLayout
b1 = new Button("Press Me");//按钮上显示字符"Press Me"
b2 = new Button("Don't Press Me");
f.add(b1);
f.add(b2);
f.pack();//FlowLayout里面用到的。紧凑排列,其作用相当于setSize(),即让窗口尽量小,小到刚刚能够包容住b1、b2两个按钮
f.setVisible(true);
f.setLayout(new BorderLayout());
f.add(new Button("North"), BorderLayout.NORTH);
f.setLayout(new GridLayout(3,2));//容器平均分成3行2列共6格
f.add(..); //添加到第一格。。。
f.add(..); //添加到第二格
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
North,,South,Center,West,East
Frame的缺省布局管理器为BorderLayout。
Panel 的缺省布局管理器为FlowLayout。
如果采用无布局管理器 setLayout(null),则必须使用setLocation(),setSize(),setBounds()等方法手工设置组件的大小和位置,此方法会导致平台相关,不鼓励使用。
Graphics public class Lines extends Applet {
public void paint(Graphics g) {
// g.drawLine(50, 50, 100, 100);
// g.drawLine(50, 100, 100, 50);
g.drawOval(0, 0, 50, 150);
g.setColor(Color.BLACK);
// 绘制椭圆的边框。
}}
g.drawArc(50, 50, 100, 100, 0, 270);矩形左上角,长宽,圆角从右开始画弧
Applet运行状态控制基本方法
init
start
stop
Thread one;
one = new Thread(this);?????与addMouseListener(this);this相同
one.start();
one = null;
哪里清除了以前的画?Graphics g1;
g1 = getGraphics();
g不用=null
本文介绍了Java AWT中的容器(Container)概念及其布局管理器,包括FlowLayout、BorderLayout、CardLayout、GridLayout和GridBagLayout等五种标准布局管理器,并通过实例展示了如何使用这些布局管理器来组织GUI组件。
957

被折叠的 条评论
为什么被折叠?



