AWT基础
介绍
AWT中
包含了很多的类和接口
有各种各样的元素窗口、按钮、文本框
,
包名:java.awt
组件和容器
窗口 Frame
展示一个窗口
package com.zlsaxx.lesson1;
import java.awt.*;
public class TestFrame {
public static void main(String[] args) {
Frame frame = new Frame("第一个Java图形界面窗口");
//设置可见性
frame.setVisible(true);
//设置窗口大小
frame.setSize(400,400);
//设置背景颜色
frame.setBackground(new Color(130, 255, 240));
//设置弹出的初始位置
frame.setLocation(200,200);
//设置大小固定
frame.setResizable(false);
}
}
运行弹出界面:
停止运行窗口自动关闭
代码封装展示多个窗口
package com.zlsaxx.lesson1;
import java.awt.*;
public class TestFrame2 {
public static void main(String[] args) {
//展示多个窗口
MyFrame myFrame1 = new MyFrame(100, 100, 400, 200, Color.cyan);
MyFrame myFrame2 = new MyFrame(500, 100, 400, 200, Color.magenta);
MyFrame myFrame3 = new MyFrame(100, 300, 400, 200, Color.pink);
MyFrame myFrame4 = new MyFrame(500, 300, 400, 200, Color.orange);
}
}
class MyFrame extends Frame{
static int id = 0; //可能存在多个窗口
public MyFrame(int x,int y,int w,int h,Color color){ //构造器
super("MyFrame+" + (++id));
setVisible(true);
setBounds(x,y,w,h);
setBackground(color);
}
}
运行弹出界面
面板 Panel
Panel不能单独存在,可以看成是容器中的一个空间
frame.add(panel)
package com.zlsaxx.lesson1;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
//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.setBackground(new Color(130, 255, 240));
panel.setBounds(150,150,200,200);
panel.setBackground(new Color(55, 255, 55));
frame.add(panel);
frame.setVisible(true);
//监听事件 窗口关闭事件
//适配器模式
frame.addWindowListener(new WindowAdapter() {
//窗口点击关闭的时候要做的事情
@Override
public void windowClosing(WindowEvent e) {
//结束程序
System.exit(0);
}
});
}
}
运行弹出窗口:
布局管理器
流式布局 FlowLayout
package com.zlsaxx.lesson1;
import java.awt.*;
public class TestFlowLayout {
public static void main(String[] args) {
Frame frame = new Frame();
//组件 - 按钮
Button button1 = new Button("button1");
Button button2 = new Button("button1");
Button button3 = new Button("button1");
//设置为流式布局
frame.setLayout(new FlowLayout(FlowLayout.LEFT));
frame.setSize(400,400);
//添加按钮
frame.add(button1);
frame.add(button2);
frame.add(button3);
frame.setVisible(true);
}
}
运行弹出窗口:
东西南北中布局 BorderLayout
package com.zlsaxx.lesson1;
import java.awt.*;
public class TestBorderLayout {
public static void main(String[] args) {
Frame frame = new Frame();
Button east = new Button("East");
Button west = new Button("West");
Button south = new Button("South");
Button north = new Button("North");
Button center = new Button("Center");
frame.add(east,BorderLayout.EAST);
frame.add(west,BorderLayout.WEST);
frame.add(south,BorderLayout.SOUTH);
frame.add(north,BorderLayout.NORTH);
frame.add(center,BorderLayout.CENTER);
frame.setSize(400,400);
frame.setVisible(true);
}
}
运行弹出窗口:
网格布局 GridLayout
package com.zlsaxx.lesson1;
import java.awt.*;
public class TestGridLayout {
public static void main(String[] args) {
Frame frame = new Frame();
Button button1 = new Button("button1");
Button button2 = new Button("button2");
Button button3 = new Button("button3");
Button button4 = new Button("button4");
Button button5 = new Button("button5");
Button button6 = new Button("button6");
frame.setLayout(new GridLayout(3,2));
frame.add(button1);
frame.add(button2);
frame.add(button3);
frame.add(button4);
frame.add(button5);
frame.add(button6);
frame.pack(); //Java函数,根据窗口里面的布局及组件的preferedSize来确定frame的最佳大小。
frame.setVisible(true);
}
}
运行弹出窗口:
其实界面应该是很小的(因为frame.pack()的缘故)但我拉大了为了方便看清
练习作业
package com.zlsaxx.lesson1;
import java.awt.*;
public class HomeWork {
public static void main(String[] args) {
Frame frame = new Frame();
frame.setVisible(true);
frame.setSize(600,400);
frame.setLocation(500,500);
frame.setBackground(Color.cyan);
frame.setLayout(new GridLayout(2,1));
Panel panel1 = new Panel(new BorderLayout());
Panel panel2 = new Panel(new GridLayout(2,1));
Panel panel3 = new Panel(new BorderLayout());
Panel panel4 = new Panel(new GridLayout(2,2));
panel1.add(new Button("Ease-1"),BorderLayout.EAST);
panel1.add(new Button("West-1"),BorderLayout.WEST);
panel2.add(new Button("panel2-1"));
panel2.add(new Button("panel2-2"));
panel1.add(panel2,BorderLayout.CENTER);
panel3.add(new Button("Ease-2"),BorderLayout.EAST);
panel3.add(new Button("West-2"),BorderLayout.WEST);
panel4.add(new Button("panel4-1"));
panel4.add(new Button("panel4-2"));
panel4.add(new Button("panel4-3"));
panel4.add(new Button("panel4-4"));
panel3.add(panel4,BorderLayout.CENTER);
frame.add(panel1);
frame.add(panel3);
}
}