Container继承体系

- Window是可以独立存在的顶级窗口,默认使用BorderLayout管理器内部组件布局
- Panel可以容纳其他组件,但不能独立存在,它必须内嵌其他容器中使用,默认使用FlowLayout管理器内部组件布局
- ScrollPane是一个带滚动条的容器,它也不能独立存在,默认使用BorderLayout管理其内部组件布局
常见API
设置组件的参数的方法
- setLocation(int x,int y);设置组件的位置,参数分别为以屏幕左上角水平为x轴,竖直为y轴的像素坐标
- setSize(int width,int height);设置组件的大小,参数为组件的宽度和高度
- setBounds(int x,int y,int width,int height);同时设置组件的位置和大小
- setVisible(Boolean b);设置该组件的可见性
访问组件的方法
- Component add(Component comp);向容器中添加其他组件,(该组件既可以是普通组件也可以是容器),并返回被添加的组件
- Component getComponent(int x,int y);获取指定位置的组件
- int getComponentCount();返回该容器中组件的数量
- Component[] getComponents();获取该容器中的所有组件
代码示例
Window
import java.awt.Frame;
public class WindowDemo {
public static void main(String[] args) {
/*1.创建一个窗口对象*/
Frame frame = new Frame();
/*2.设置位置与大小*/
frame.setLocation(200, 200);
frame.setSize(900, 500);
/*3.设置窗口可见*/
frame.setVisible(true);
}
}
运行结果
panel
import java.awt.Button;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.TextField;
public class PanelDome {
public static void main(String[] args) {
/*1.创建一个window对象,因为panel不能独立存在*/
Frame frame = new Frame();
/*2.创建一个Panel对象*/
Panel p = new Panel();
/*3.创建文本域和按钮并添加入panel中*/
TextField text = new TextField("这里是测试文本");
Button b = new Button("这是一个测试按钮");
p.add(text);
p.add(b);
/*4.将panel放入window中*/
frame.add(p);
/*5.设置window的大小,位置,可见性*/
frame.setBounds(200, 200, 900, 500);
frame.setVisible(true);
}
}
运行结果
Scrollpane
import java.awt.Button;
import java.awt.Frame;
import java.awt.ScrollPane;
import java.awt.TextField;
public class ScrollPaneDemo {
public static void main(String[] args) {
/*1.创建window对象*/
Frame frame = new Frame("这里演示ScrollPane");
/*2.创建ScrollPane对象*/
ScrollPane sp = new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS);//参数表示永远显示滚动条
/*3.往sp中添加内容*/
sp.add(new Button("按钮"));
sp.add(new TextField("文本"));
/*4.将sp添加到frame中*/
frame.add(sp);
/*5.设置frame参数*/
frame.setBounds(200, 200, 900, 500);
frame.setVisible(true);
}
}
运行结果
按钮无法显示,是默认的布局管理器导致的
版权声明:本文为m0_48468380原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。