JAVA基础再回首(二十七)——JAVA中的图形化界面、GUI概述、简单的窗体创建、事件监听机制、动作事件、GUI布局、鼠标事件

原创 2016年10月02日 00:21:48

JAVA基础再回首(二十七)——JAVA中的图形化界面、GUI概述、简单的窗体创建、事件监听机制、动作事件、GUI布局、鼠标事件

版权声明:转载必须注明本文转自程序员杜鹏程的博客:http://blog.csdn.net/m366917

这篇博客我们来说一下JAVA中的图形化界面,也就是GUI

GUI概述

英文全称是Graphical User Interface(图形用户接口)。用图形的方式,来显示计算机操作的界面,这样更方便更直观。

其实系统跟用户有两种交互,一种是GUI,一种叫做CLI。

CLI的英文全称是Command line User Interface (命令行用户接口)就是常见的Dos命令行操作。CLI需要我们记忆一些常用的命令,操作不直观。

Java为GUI提供的对象都存在java.Awt和javax.Swing两个包中。我们来学习一下

  • java.awt:Abstract Window ToolKit (抽象窗口工具包),需要调用本地系统方法实现功能。属重量级控件。
  • javax.swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现。增强了移植性,属轻量级控件。

GUI继承体系图

这里写图片描述

从图中我们可以看到
Container常用子类:Window Panel(面板,不能单独存在。)
Window常用子类:Frame Dialog

下面我们就来写一个GUI的案例

简单的窗体创建

public class FrameDemo {
    public static void main(String[] args) {
        // 创建窗体对象
        Frame f = new Frame();

        // 设置窗体标题
        f.setTitle("GUI");
        // 设置窗体大小
        f.setSize(400, 300); // 单位:像素
        // 设置窗体位置
        f.setLocation(400, 200);

        // 调用一个方法,设置让窗体可见
        f.setVisible(true);
    }
}

运行结果
这里写图片描述

上面代码的设置窗体大小和位置方法我们可以用另外一个方法一句话搞定

public class FrameDemo {
    public static void main(String[] args) {
        // 创建对象
        Frame f = new Frame("GUI");
        // 一个方法搞定setBounds(x, y, width, height);
        f.setBounds(400, 200, 400, 300);

        f.setVisible(true);
    }
}

我们运行了程序后,发现窗口关不掉,只能关闭服务,窗口才能关闭。那么我们怎么实现点击关闭按钮关闭窗口呢,这就牵扯到了事件监听机制?下面我们就来学习

事件监听机制

  • 事件源
  • 事件
  • 事件处理
  • 事件监听器

    一个事件监听机制是由上面四个方面组成,下面我们来看事件监听机制流程图

    这里写图片描述

那么我们要关闭窗口的话,就要对窗体事件进行处理并监听

        // 让窗体关闭
        f.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

动作事件

我们再来看按钮点击事件,首先我们要给窗体中添加一个按钮,然后再去实现他的点击事件

public class FrameDemo {
    public static void main(String[] args) {
        // 创建窗体对象
        Frame f = new Frame("添加按钮点击事件");
        // 设置属性
        f.setBounds(400, 200, 400, 300);
        // 设置布局为流式布局
        f.setLayout(new FlowLayout());

        // 创建按钮对象
        Button bu = new Button("我是按钮");
         bu.setSize(20, 10);

        // 把按钮添加到窗体
        f.add(bu);

        // 设置窗体可以关闭
        f.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

        bu.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("点我点我!!");
            }
        });

        // 窗体显示
        f.setVisible(true);
    }
}

运行结果
这里写图片描述
我们每点一下按钮,控制台都会输出一句话。上面我们为窗体设置布局为流式布局,按钮才会在哪个位置,那么GUI布局还有那些呢?我们来看一下

GUI布局

  • FlowLayout(流式布局管理器)
    • 从左往右的顺序排列
    • Panel默认的布局管理器
  • BorderLayout(边界布局管理器)
    • 东南西北中
    • Frame默认的布局管理器
  • GridLayout(网格布局管理器)
    • 规则的矩阵
  • CardLayout(卡片布局管理器)
    • 选项卡
  • GridBagLayout(网格包布局管理器)
    • 非规矩的矩阵

鼠标事件

鼠标事件也很容易理解,就是当鼠标停留在按钮上就触发该事件,离开按钮后就触发另外一个事件,是不是很好玩,我们来玩一下

    button.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseEntered(MouseEvent e) {
                f.setBackground(Color.RED);
            }
        });

        button.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseExited(MouseEvent e) {
                f.setBackground(Color.WHITE);
            }
        });

运行程序后,在窗体中有一个按钮,当我们鼠标移动到按钮上面时,窗体的背景颜色会变成红色,离开时会变成白色,你可以自己试试,很好玩。感觉和在Android 中的代码有点相似
我们来看运行截图
这里写图片描述
这里写图片描述
截图看不见鼠标,但是效果还是没得说

好了,关于GUI图形化界面,我们就学习这么多,现在在开发中它不是我们掌握的重点,我们还是要了解一下的,当然他也有更加复杂的代码逻辑,如果想深入学习GUI,可以上网查询一下资料。就说这么多了。

欢迎有兴趣的同学加我朋友的QQ群:点击直接加群555974449 请备注:java基础再回首我们一起来玩吧

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m366917/article/details/52719838

三维游戏引擎设计与实现-GUI设计与实现

从零基础介绍、设计并实现一套高效的跨平台的高效的GUI系统,采用OpenGL ES2.0规范Api进行渲染绘制。 介绍UI系统的消息处理,实现了一套高效,简单的消息处理机制,采用委托代理的模式做消息映射绑定。实现常用控件,例如 按钮,贴图按钮,Image,Label,Frame,Slider,ScrollView,Radio Button,CheckBox,汉字绘制等。
  • 2015年06月06日 11:35

java图形用户界面基础

Swing和AWT介绍java的时候,将图形用户界面相关类捆绑在一起,放在一个称为抽象窗口工具箱(Abstract Window Toolkit,AWT)的库中。AWT适合开发简单的图形用户界面,但并...
  • yongchaocsdn
  • yongchaocsdn
  • 2016-11-26 21:27:52
  • 11338

简述Java中,GUI的事件驱动模式

放弃了继续《猜猜看》的代码研究,因为我真的连自己不懂在哪里都不清楚。然后我随便上网了解了老师之前提过的问题,一是简述Java中,GUI的事件驱动模式。(我还是不了解) 图形用户界面GUI 1、基本...
  • u014026824
  • u014026824
  • 2015-07-02 10:46:01
  • 460

JAVA基础再回首(二十七)——JAVA中的图形化界面、GUI概述、简单的窗体创建、事件监听机制、动作事件、GUI布局、鼠标事件

JAVA基础再回首(二十七)——JAVA中的图形化界面、GUI概述、简单的窗体创建、事件监听机制、动作事件、GUI布局、鼠标事件 版权声明:转载必须注明本文转自程序员杜鹏程的博客:http://b...
  • m366917
  • m366917
  • 2016-10-02 00:21:48
  • 1233

Java图形开发--GUI

Java图形开发--GUI 1、图形用户界面(gui)介绍 图形用户界面(Graphics User Interface,GUI)是用户与程序交互的窗口,比命令行的界面更加直观并且更好操作。 aw...
  • q547550831
  • q547550831
  • 2015-11-02 19:38:25
  • 17551

java gui图形界面编程(几乎包含所有常用的控件及布局)

看了下网上的gui教程都没有什么比较好的,不管是java、安卓还是ios,设计UI都应该先从布局上来考虑,而不是看一点写一点。如果你一来就想着用绝对布局,我只能说这种思想很危险,砖慢慢搬吧。 这个是中...
  • u012891055
  • u012891055
  • 2015-11-29 13:28:18
  • 10234

Java GUI入门教程

Java程序中开发GUI页面。下面我主要对Java中实现图像管理、图形绘制和颜色管理等做出介绍,与此同时,Swing包也做出一部分介绍。...
  • zhangyifei521
  • zhangyifei521
  • 2015-12-15 09:50:33
  • 10584

JAVA GUI 开发---登录界面加载背景图片

package com.ycty.totlosystem.gui.test; import java.awt.Graphics; import java.awt.GridBagConstraints...
  • ytlcainiao
  • ytlcainiao
  • 2015-04-25 19:17:52
  • 3781

java——GUI

GUI是图形用户界面的英文缩写,说点直白一点GUI就是窗口、按钮等元素的总称。java中实现GUI是利用java.awt包及其子包进行性编程的。 在java.awt包中component和co...
  • suneqing
  • suneqing
  • 2014-08-25 18:49:11
  • 1112

JAVA GUI 图形界面 ※插入图片※

绘制图片的区域要单独为一块panel,我们可以创建JPanel的子类并覆盖掉其中的paintComponent()方法: ①在frame上绘制图形  需要显示图形时,只要frame...
  • wangxiaojingo
  • wangxiaojingo
  • 2013-05-14 18:47:32
  • 4678
收藏助手
不良信息举报
您举报文章:JAVA基础再回首(二十七)——JAVA中的图形化界面、GUI概述、简单的窗体创建、事件监听机制、动作事件、GUI布局、鼠标事件
举报原因:
原因补充:

(最多只允许输入30个字)