GUI基础属性与封装
设置布局:setLayout()
位置:setLocation(int x,int y)
大小:setSize(int w,int h)
能否缩放:setResizable(boolean)
设置大小坐标:setBounds(int x,int y,int w,int h)
设置背景色:setBackground()
添加嵌套:add()
设置可见性:setVisible(boolean)
监听:适配器模式:
frame.addWindowListener(new WindowAdapter() {
//窗口点击关闭的时候需要做的事
@Override
public void windowClosing(WindowEvent e) {
//结束程序
System.exit(0);
}
});
注意:面板panel不能单独存在,只能存在与容器中
public class TestPanel {
public static void main(String[] args) {
Frame frame = new Frame();
Panel panel = new Panel();
//设置布局
frame.setLayout(null);
//坐标
frame.setBounds(300,300,500,500);
//能否缩放
frame.setResizable(true);
//背景色
frame.setBackground(Color.YELLOW);
panel.setBackground(Color.black);
//设置坐标,相对于frame
panel.setBounds(50,50,400,400);
//窗口添加面板
frame.add(panel);
//设置窗口可见
frame.setVisible(true);
//监听事件,监听窗口关闭事件
//适配器模式:
frame.addWindowListener(new WindowAdapter() {
//窗口点击关闭的时候需要做的事
@Override
public void windowClosing(WindowEvent e) {
//结束程序
System.exit(0);
}
});
}
}
如果要实现多个窗口,为了避免重复使用以上属性实现窗口,我们可以将属性封装起来,通过创建多个对象来创建窗口
封装实现4个窗口
public class TestFram2 {
public static void main(String[] args) {
//展示多个窗口
MyFram myFram1 = new MyFram(100, 100, 200, 200, Color.red, true);
MyFram myFram2 = new MyFram(100, 300, 200, 200, Color.gray, true);
MyFram myFram3 = new MyFram(300, 100, 200, 200, Color.green, true);
MyFram myFram4 = new MyFram(300, 300, 200, 200, Color.pink, true);
}
}
//封装
class MyFram extends Frame{
public MyFram(int x, int y, int w, int h, Color color,boolean resizable){
super();
setBackground(color);
setBounds(x,y,w,h);
setResizable(resizable);
setVisible(true);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
封装结果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YzFrDZcE-1623293834606)(H:\Soft\Typora\img\g3.png)]
}
});
}
}
#### 封装结果
[外链图片转存中...(img-YzFrDZcE-1623293834606)]