01 GUI编程概述
GUI编程
如何学?
-
这是什么?
- 图形界面编程
-
它怎么玩?
-
该如何去在我们平时运用?
组件:
- 窗口
- 弹窗
- 面板
- 文本框
- 列表框
- 按钮
- 图片
- 监听事件
- 鼠标
- 键盘事件
- 破解工具
1、简介
Gui的核心技术:Swing AWT ,
- 因为界面不美观。
- 需要jre环境!
为什么要学习
- 可以写出自己心中的一些小工具
- 工作时候,也可能需要维护到swing界面,概率极小!
- 了解MVC架构,了解监听!
2、AWT
2-1、 AWT介绍
- 包含类很多的类和接口! GUI:图形用户界面编程
- 元素:窗口,按钮,文本框
- java.awt
2-2、组件和容器
1、弹窗
package com.liudr.lesson01;
import java.awt.*;
//GUI的第一个界面
public class TestFream {
public static void main(String[] args) {
//Frame
Frame frame = new Frame("我的第一个Java图像窗口");
//需要设置可见性
frame.setVisible(true);
//需要设置窗口的大小
frame.setSize(400,400);
//设置窗口的背景颜色 Coler
Color color = new Color(85, 150, 68);
frame.setBackground(color);
//弹出的初始位置
frame.setLocation(200,200);
//设置大小固定
frame.setResizable(false);
}
}
question:发现窗口为无法点“X”关闭窗口
解决:点击程序结束按钮
2、面板Panel
- Panel 可以看成一个空间,但是不能单独存在,可以放在Frame上。
- 解决了关闭问题
package com.liudr.lesson01;
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
//Panel 可以看成一个空间,但是不能单独存在,可以放在Frame上
public class Test03Panel {
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(62, 226, 35));
//panel设置坐标,相对于frame
panel.setBounds(50,50,400,400);
panel.setBackground(new Color(77, 139, 189));
//frame.add(panel)
frame.add(panel);
//设置可见性
frame.setVisible(true);
//监听事件,监听窗口关闭事件
//适配器模式:
frame.addWindowListener(new WindowAdapter() {
//窗口关闭是要做的事情
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
3、布局管理器
-
流式布局(从左到右)(FlowLayout)
package com.liudr.lesson01; import java.awt.*; public class Test04LowLayout { 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"); //设置为流式布局 //frame.setLayout(new FlowLayout());//默认中间 frame.setLayout(new FlowLayout(FlowLayout.LEFT)); //把按钮添加上去 frame.add(button1); frame.add(button2); frame.add(button3); frame.setSize(200,200); frame.setVisible(true); } } -
东西南北中(BorderLayout)
package com.liudr.lesson01; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; //东西南北中布局 public class Test05BorderLayout { 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.setBounds(200,200,200,200); //监听事件,窗口关闭事件 frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); frame.setVisible(true); } } -
表格式布局(GridLayout)
package com.liudr.lesson01; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class Test06GridLayout { public static void main(String[] args) { Frame frame = new Frame(); Button btn1 = new Button("btn1"); Button btn2 = new Button("btn2"); Button btn3 = new Button("btn3"); Button btn4 = new Button("btn4"); Button btn5 = new Button("btn5"); Button btn6 = new Button("btn6"); frame.setLayout(new GridLayout(3,2)); frame.add(btn1); frame.add(btn2); frame.add(btn3); frame.add(btn4); frame.add(btn5); frame.add(btn6); frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); frame.pack();//Java函数,可以自动调整布局 frame.setVisible(true); } }
续写-
浙公网安备 33010602011771号