GUI编程上
GUI的概念
GUI(Graphical User Interface):用户图形界面
GUI的核心技术
-
Swing
-
AWT
即将淘汰的原因
-
界面不美观
-
需要jre环境
学习GUI编程原因
-
可以写出自己心中想要的一些小工具
-
工作时候,也可能需要维护到Swing界面,概率极小
-
了解MVC架构,了解监听
GUI的第一个界面
import java.awt.*;
public class TestFrame {
public static void main(String[] args) {
Frame frame = new Frame("第一个GUI窗口界面");
// 设置窗口大小
frame.setSize(300,400);
// 设置窗口起始位置
frame.setLocation(350,150);
// 设置窗口是否可见 默认是false 不可见
frame.setVisible(true);
// 设置窗口背景颜色
frame.setBackground(new Color(79, 243, 209));
}
}
AWT面板
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();
frame.setBounds(300, 200, 500, 500);
frame.setBackground(new Color(29, 245, 24));
frame.setLayout(null);// 如果不设置 panel默认将填充整个frame
Panel panel = new Panel();
panel.setBounds(50, 50, 400, 400);
panel.setBackground(new Color(236, 24, 24));
frame.add(panel);
frame.setVisible(true);
// 监听窗口关闭事件 System.exit(0)
// 适配器模式
frame.addWindowListener(new WindowAdapter() {
三种布局形式 (FlowLayout、BorderLayout和GridLayout)
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class TestLayout {
public static void main(String[] args) {
// flowLayoutTest();
// borderLayoutTest();
gridLayoutTest();
}
// 流式布局
static void flowLayoutTest() {
Frame frame = new Frame("Flow Layout");
Button btn1 = new Button("btn1");
Button btn2 = new Button("btn2");
Button btn3 = new Button("btn3");
frame.setBounds(300, 200, 500, 500);
frame.setVisible(true);
frame.setLayout(new FlowLayout());
frame.add(btn1);
frame.add(btn2);
frame.add(btn3);
frame.addWindowListener(new WindowAdapter() {