GUI编程-Day1
图形用户编程
1、AWT
Abstract Windows Tools
2、组成部分(感觉像VB)
组件Component
1、Button/TextArea/Label/…
2、Container
-
Window---------->Frame/Dialog
-
Panel------------>Applet
3、框架Frame
在Frame定义中,发现Frame继承了Window类实现MenuContainer类。
public class Frame extends Window implements MenuContainer
Frame frame = new Frame("Java小游戏");
frame.setVisible(true);
frame.setSize(400, 400);
frame.setBackground(new Color(67, 198, 210));
frame.setLocation(200, 200);
frame.setResizable(false);
//new 一个Frame框架并设置title
//设置可见性.setVisible----->Window类的方法------>Component类的方法
//设置窗口大小.setSize----->Window类的方法------>Component类的方法
//设置背景颜色.setBackground----->Frame类的方法
//设置位置.setLocation----->Window类的方法------>Component类的方法
//设置窗口可变性
4、面板Panel
面板是一个空间,但不能单独存在,需要先创建Frame框架,然后通过frame.add(panel)向框架中加入面板。以后增加的组件就放在面板上,而不要放在框架上。
Panel panel = new Panel();
panel.setBackground(Color.gray);
panel.setBounds(50,50,300,300);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
添加窗口监听,new 一个WindowAdapter,重写里面的windowClosing方法。
5、三种布局管理器
三种布局说的是FlowLayout、BorderLayout和GridLayout
FlowLayout就是顺序往后排、BorderLayout是分上下左右(North/South/West/East)和中间,GridLayout是分行列按表格布局。
Frame中通过setLayout方法设置,该方法是类Container的方法。需要向该方法中传递一个LayoutManger,这是一个接口,下面有许多它的实现类,包括FlowLayout、BorderLayout和GridLayout。
public void setLayout(LayoutManager mgr) {
}
Panel通过创建panel对象时传递LayoutManger类下的实现类设置
public Panel(LayoutManager layout) {
setLayout(layout);
}
Frame和Panel均可通过add方法设置布局。例如:
frame.setLayout(new GridLayout(2,1));
Panel panel1 = new Panel(new BorderLayout());
panel1.add(panel2, BorderLayout.CENTER);