Java基础__04.GUI编程
GUI编程常见的组件:
- 窗口
- 弹窗
- 面板
- 文本框
- 列表框
- 按钮
- 图片
- 监听事件
- 鼠标操作
- 键盘事件
GUI简介
GUI的核心技术:Swing AWT,是需要jre环境的。
AWT介绍
- 包含了很多类和接口;
- 元素:窗口、按钮、文本框。。。
- java.awt包;

组件和容器
1、Frame
Frame即一个窗口,主要用来进行Panel的布局;通过new的方式创建一个窗口,然后设置相关的属性:大小、颜色、定位、可见性、监听。。。。
代码如下:
1 public class GuiTest {
2 public static void main(String[] args) {
3 // new 一个Frame
4 Frame frame = new Frame("我的第一个图形化界面");
5
6 // 设置可见性 默认是不可见的
7 frame.setVisible(true);
8
9 // 设置窗口大小
10 frame.setSize(500,500);
11
12 // 设置背景颜色 用到Color类
13 frame.setBackground(new Color(70,229,6));
14
15 // 弹出的初始位置 x、y的坐标值
16 frame.setLocation(500,500);
17
18 // 设置窗口大小固定,不可拉伸 默认是true,可拉伸的
19 frame.setResizable(false);
20 }
21 }
运行main方法,弹出如下窗口:

2、Panel
Panel,即面板,类似一个模块区域,它是不能单独存在的,需要依赖于Frame;在上面Frame的基础上,增加一个Panel,代码如下:
// 接上面的代码
// 设置布局:格式为null,即没有布局
frame.setLayout(null); // new 一个Panel
Panel panel = new Panel();
// 设置大小和位置,等价于setSize()和setLocation() 且它的位置是相对于Frame的
panel.setBounds(100,100,300,300);
panel.setBackground(new Color(154, 57, 45));
// 将panel添加到Frame中
frame.add(panel);
结果如下图:

问题:
上面两个图示的面板,点击关闭按钮是无法关闭的,若要关闭,只能停止程序。这里就需要用到Frame中的窗口监听事件,来进行窗口的关闭,代码如下:
// 接上面的代码
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
// 结束程序
System.exit(0);
}
});
这里的WindowAdapter是实现了WindowListener的一个抽象类,因为WindowListener是一个接口,如果直接使用它的话,需要重写里面的所有方法,代码比较冗余,所以这里使用的是它的实现类,好处是可以重写指定的方法即可。此时的窗口就可以关闭了,本质也是关闭程序。
3、布局管理器
3.1 流式布局:FlowLayout
即所有的组件都是流式布局,按顺序排列的;
代码示例:
// 设置布局样式
panel.setLayout(new FlowLayout(FlowLayout.CENTER)); // 居中,也是默认的
// panel.setLayout(new FlowLayout(FlowLayout.LEFT)); // 靠左
// panel.setLayout(new FlowLayout(FlowLayout.RIGHT)); // 靠右
// new几个buttom模拟组件
Button button1 = new Button("button1");
Button button2 = new Button("button2");
Button button3 = new Button("button3");
// 将button添加到panel中
panel.add(button1);
panel.add(button2);
panel.add(button3);



3.2 东西南北中布局:BorderLayout
即:组件的布局分:东南西北中五个方位;
代码示例:
// 设置panel的布局样式 :东西南北中布局 BorderLayout
panel.setLayout(new BorderLayout());
// new几个button模拟组件
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");
// 将组件添加到panel中,注意添加方式和流布局的区别
panel.add(east,BorderLayout.EAST);
panel.add(west,BorderLayout.WEST);
panel.add(south,BorderLayout.SOUTH);
panel.add(north,BorderLayout.NORTH);
panel.add(center,BorderLayout.CENTER);

3.3 表格布局:GridLayout
即类似表格的一种布局,分几行几列;
代码示例:
// 设置panel的布局样式 :表格布局 GridLayout
// 这里需要指定几行几列。默认是一行,列数取决于添加的组件的个数
panel.setLayout(new GridLayout(3,2));
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");
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
panel.add(button5);
panel.add(button6);

各个布局之间是可以相互嵌套的,所以以上三种布局灵活运用,即可构建出不同的页面布局。
4、事件监听
to be continue...
Java基础__04.GUI编程的更多相关文章
- Java基础篇——Gui编程
AWT 抽象窗口工具 组件:按钮(button) 文本域(textarea) 标签(label) 容器(container)... Frame窗口 Frame frame = new Frame( ...
- 黑马程序员:Java基础总结----GUI图形化界面
黑马程序员:Java基础总结 GUI图形化界面 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! GUI(Graphical User Interface)图形化界 ...
- 黑马程序员:Java基础总结----GUI&网络&IO综合开发
黑马程序员:Java基础总结 GUI&网络&IO综合开发 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 网络架构 C/S:Client/Server ...
- 黑马程序员:Java基础总结----网络编程
黑马程序员:Java基础总结 网络编程 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 网络编程 网络通讯要素 . IP地址 . 网络中设备的标识 . 不易记忆,可用 ...
- Java基础-初识面向对象编程(Object-Oriented-Programming)
Java基础-初识面向对象编程(Object-Oriented-Programming) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java是一门面向对象的程序设计语言.那么什 ...
- 黑马程序员——【Java基础】——GUI(图形用户界面)
---------- android培训.java培训.期待与您交流! ---------- 一.概述 1.GUI(GraphicalUser Interface):又称图形用户界面,是计算机用户与计 ...
- java基础50道编程题
50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析 ...
- 黑马程序员——JAVA基础之GUI
-----Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- GUI(图形用户界面) GUI • Graphical User Interface(图形用 ...
- java基础知识——网络编程、IO流
IO流 字节流:处理字节数据的流对象,计算机中最小数据单元就是字节.InputStream OutputStream 字符流:字符编码问题,将字节流和编码表封装成对象就是字符流.Reader Writ ...
- 黑马程序员——JAVA基础之网络编程
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 网络编程 网络模型:OSI参考模型和TCP/IP参考模型 网络通讯三要素: IP地址:InetA ...
随机推荐
- 跳板攻击之:MSF portfwd 端口转发与端口映射
跳板攻击之:MSF portfwd 端口转发与端口映射 郑重声明: 本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关 ...
- 使用Shapefile C Library读取shp文件并使用OpenGL绘制
1. 概述 坐标数据是空间数据文件的核心,空间数据的数据量往往是很大的.数据可视化是GIS的一个核心应用,绘制海量的坐标数据始终是一个考验设备性能的难题,使用GPU进行绘制可有效减少CPU的负载,提升 ...
- LeetCode-1405 最长最快乐字符串
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-happy-string 题目描述 如果字符串中不含有任何 'aaa','bbb' ...
- springboot跳转页面404的问题
今天测试的时候出现了这个问题: Cannot forward to error page for request [/] as the response has already been commit ...
- Ubuntu中用普通方法无法添加自启动
参考了https://www.cnblogs.com/a5idc/p/13752839.html 如何知道你使用的是哪个init系统?你可以使用这个命令来知道与PID 1(系统上运行的第一个进程)相关 ...
- 银河麒麟服务器V10-SP2安装tomcat
1.首先先去tomcat官网下载一个安装包 2.创建一个存放压缩包的文件夹,并考入文件 3.解压tomcat压缩包 命令: tar -xvf 压缩包名 4.启动tomcat 进入apache-tomc ...
- 桌面应用(.exe)设置窗口默认最大化、全屏(electron)
设置窗口默认最大化.全屏(electron) 一.默认最大化 win = new BrowserWindow({show: false}) win.maximize() win.show() 二.默认 ...
- windows-sam文件
sam文件是账号密码的数据库文件 存放位置C:\Windows\System32\Config\sam
- Spring oauth2 ,Spring security, Session,Cookie,token,SSO 是什么,解决什么问题,如何集成?
背景假设就是一个多个域名web系统需要SSO单点登陆 什么Session? 2.什么是Token? 3.什么是Cookie? 4.Spring security? 5.Spring oauth2?
- oracle system 账户被锁或者忘记密码
首先打开SQL PLUS 然后执行conn /as sysdba,不用输入口令直接登录. 登录成功! 若登录的时候出错,这是由于权限不足. 接下来打开[计算机管理],选择[本地用户和组],展开[组], ...