GUI编程常见的组件:

  • 窗口
  • 弹窗
  • 面板
  • 文本框
  • 列表框
  • 按钮
  • 图片
  • 监听事件
  • 鼠标操作
  • 键盘事件

GUI简介

  GUI的核心技术:Swing AWT,是需要jre环境的。

AWT介绍

  1. 包含了很多类和接口;
  2. 元素:窗口、按钮、文本框。。。
  3. 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编程的更多相关文章

  1. Java基础篇——Gui编程

    AWT 抽象窗口工具 组件:按钮(button) 文本域(textarea) ​ 标签(label) 容器(container)... Frame窗口 Frame frame = new Frame( ...

  2. 黑马程序员:Java基础总结----GUI图形化界面

    黑马程序员:Java基础总结 GUI图形化界面   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流!   GUI(Graphical User Interface)图形化界 ...

  3. 黑马程序员:Java基础总结----GUI&网络&IO综合开发

    黑马程序员:Java基础总结 GUI&网络&IO综合开发   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 网络架构 C/S:Client/Server ...

  4. 黑马程序员:Java基础总结----网络编程

    黑马程序员:Java基础总结 网络编程   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 网络编程 网络通讯要素 . IP地址 . 网络中设备的标识 . 不易记忆,可用 ...

  5. Java基础-初识面向对象编程(Object-Oriented-Programming)

    Java基础-初识面向对象编程(Object-Oriented-Programming) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java是一门面向对象的程序设计语言.那么什 ...

  6. 黑马程序员——【Java基础】——GUI(图形用户界面)

    ---------- android培训.java培训.期待与您交流! ---------- 一.概述 1.GUI(GraphicalUser Interface):又称图形用户界面,是计算机用户与计 ...

  7. java基础50道编程题

    50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析 ...

  8. 黑马程序员——JAVA基础之GUI

    -----Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- GUI(图形用户界面)  GUI •  Graphical User Interface(图形用 ...

  9. java基础知识——网络编程、IO流

    IO流 字节流:处理字节数据的流对象,计算机中最小数据单元就是字节.InputStream OutputStream 字符流:字符编码问题,将字节流和编码表封装成对象就是字符流.Reader Writ ...

  10. 黑马程序员——JAVA基础之网络编程

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 网络编程 网络模型:OSI参考模型和TCP/IP参考模型 网络通讯三要素: IP地址:InetA ...

随机推荐

  1. 跳板攻击之:MSF portfwd 端口转发与端口映射

    跳板攻击之:MSF portfwd 端口转发与端口映射 郑重声明: 本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关 ...

  2. 使用Shapefile C Library读取shp文件并使用OpenGL绘制

    1. 概述 坐标数据是空间数据文件的核心,空间数据的数据量往往是很大的.数据可视化是GIS的一个核心应用,绘制海量的坐标数据始终是一个考验设备性能的难题,使用GPU进行绘制可有效减少CPU的负载,提升 ...

  3. LeetCode-1405 最长最快乐字符串

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-happy-string 题目描述 如果字符串中不含有任何 'aaa','bbb' ...

  4. springboot跳转页面404的问题

    今天测试的时候出现了这个问题: Cannot forward to error page for request [/] as the response has already been commit ...

  5. Ubuntu中用普通方法无法添加自启动

    参考了https://www.cnblogs.com/a5idc/p/13752839.html 如何知道你使用的是哪个init系统?你可以使用这个命令来知道与PID 1(系统上运行的第一个进程)相关 ...

  6. 银河麒麟服务器V10-SP2安装tomcat

    1.首先先去tomcat官网下载一个安装包 2.创建一个存放压缩包的文件夹,并考入文件 3.解压tomcat压缩包 命令: tar -xvf 压缩包名 4.启动tomcat 进入apache-tomc ...

  7. 桌面应用(.exe)设置窗口默认最大化、全屏(electron)

    设置窗口默认最大化.全屏(electron) 一.默认最大化 win = new BrowserWindow({show: false}) win.maximize() win.show() 二.默认 ...

  8. windows-sam文件

    sam文件是账号密码的数据库文件 存放位置C:\Windows\System32\Config\sam

  9. Spring oauth2 ,Spring security, Session,Cookie,token,SSO 是什么,解决什么问题,如何集成?

    背景假设就是一个多个域名web系统需要SSO单点登陆 什么Session? 2.什么是Token? 3.什么是Cookie? 4.Spring security? 5.Spring oauth2?

  10. oracle system 账户被锁或者忘记密码

    首先打开SQL PLUS 然后执行conn /as sysdba,不用输入口令直接登录. 登录成功! 若登录的时候出错,这是由于权限不足. 接下来打开[计算机管理],选择[本地用户和组],展开[组], ...