Java之GUI编程(一)

Java之GUI编程(一)

大家好,又见面了,我是全栈君。

        GUI全称Graphical User Interfaces,意为图形用户户界面,又称为图形用户接口。GUI指的就是採用图形方式显示的计算机操作用户界面,打个例如吧。我们点击QQ图标,就会弹出一个QQ登陆界面的对话框。这个QQ图标就能够被称作图形化的用户界面。

       实现GUI编程的不可缺少的三个条件是组件、事件

组件

       组件就是一些主要的图形元素。包括有两类组件,一类是像我们常常常使用到的button、文本框、文本域、多选button、单选button等。还有一类是我们常常说到的容器。比方说窗口、Panel等,它的作用主要是用来组织界面上的组件或者单元。

AWT组件
       
AWT组件是重量级组件,它依赖于本地操作系统的GUI,缺乏平台独立性。可是AWT组件简单稳定。兼容于不论什么一个JDK版本号。
AWT所涉及到的类一般在java.awt的包及其子包中。java.awt中的类负责与本地操作系统进行交互,让本地操作系统显示和操作组件。

       AWT中的两个核心类是Container(容器)和Component类
                    Java之GUI编程(一)

Component类

        Java图形用户界面最基本组成部分是Component。Component类及其子类的对象用来描写叙述以图形化的方式显示在屏幕上并可以与用户进行交互的GUI元素(标签、button)。

Container类

        用来组织界面上的组件或者单元。有两种经常使用的Container(容器),一是Window。Window对象表示自由停泊的顶级窗体,还有一个是Panel
对象可作为容纳其它Component对象,但不可以独立存在。必须被加入到其它
Container中,比方说Window或者Applet中。

        Container它有一定的范围和大小,一般都是矩形。

有一定的位置,这个位置可分相对位置和绝对位置。

        一个Container中能够包括其它ContainerContainer中能够嵌套Container。当Container显示时候。它里面的元素也被小时出来,当Container隐藏时或者关闭时。它包括的元素也被隐藏。 

Component类与Container类关系

       Component对象不能独立显示出来,必须放在某一Container对象中才干够显示出来。

 

       Container是Component的子类。Container子类对象能够容纳别的Component对象。
Container对象也能够被当作Component对象加入到其它Container对象中。

   

事件

        事件是指组件触发的动作事件,java中不同的事件由不同的监听器处理,组件是事件源对象。而监听器主要用来接收来自事件源对象产生的动作事件,然后对其处理。

事件监听

                Java之GUI编程(一)  
说明:
        事件实现过程中产生的对象:事件、事件源、监听器
        事件:用户在界面上的某一个操作,通常使用各种输入设备,如鼠标、键盘等。

        事件源:产生事件的组件,比如在一个button上的单击就是事件源
        监听器:包括事件处理器,负责检查事件是否发生,若发生则激活事件处理器对其处理

       监听过程: 当事件源对象产生某种事件时,先封装该事件的信息。然后向监听器传送此事件对象。监听器在接收到事件对象后。为了能让监听器检查组件是否发生了该事件。会向该事件源对象(即该组件)注冊事件监听器,然后事件处理器会检查事件是否发生,假设发生了,那么激活事件处理器进行处理。
实例:

import java.awt.*;
import java.awt.event.*;
public class TFActionEvent {

	public static void main(String[] args) {
		new TFFrame();
	}

}

class TFFrame extends Frame
{
	TFFrame()
	{
		TextField tf = new TextField();
		add(tf);
		//TextField上加入监视器
		tf.addActionListener(new TFActionListener());
		pack();
		setVisible(true);
	}
}

class TFActionListener implements ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		//(TextField)e.getSource()强制将对象转换为TextField
		TextField tf = (TextField)e.getSource();
		System.out.println(tf.getText());
	}
}

执行结果:

        Java之GUI编程(一)

总结

       对于一款好的软件来说,其软件的图形化界面相当重要,不仅可以让开发者和用户可以直观的表达软件用意。还能给用户带来视觉享受,让用户愿意使用软件。同一时候也让开发者变的更加自信,相信自己可以做出更美观的用户软件。

       

 关于J2SE的总结结束了。下面是我在学习J2SE时的一系列总结。
         Java内存简单分析
         Java异常处理
         Java经常使用类
         Java容器
       
 Java流

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116112.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • spss数据分析聚类分析_SPSS聚类分析

    spss数据分析聚类分析_SPSS聚类分析SPSS之聚类分析(图文+数据集)聚类分析简介按照个体(记录)的特征将它们分类,使同一类别内的个体具有尽可能高的同质性,而类别之间则具有尽可能高的异质性。为了得到比较合理的分类,首先要采用适当的指标来定量地描述研究对象之间的联系的紧密程度。假定研究对象均用所谓的“点”来表示。在聚类分析中,一般的规则是将“距离”较小的点归为同一类,将“距离”较大的点归为不…

    2022年10月17日
  • 推荐几个bootstrap 后端UI框架

    推荐几个bootstrap 后端UI框架工欲善其事,必先利其器对于从事软件开发的您也一样,有一套熟悉的bootstrap后台ui框架,bootstrap后端模板让您的开发速度大幅度提升这是本人经常使用到的一些bootstrap后台框架推荐给大家第一名inspiniabootstrap后端模板演示地址http://cn.inspinia.cn效果图cn.inspinia.cn第二名nifty…

  • 完全卸载mysql数据库教程_sql卸载教程

    完全卸载mysql数据库教程_sql卸载教程快捷键win+r输入regedit进入注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL文件夹删除删除HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL文件夹。删除HKEY_L…

  • 解决:Failed to convert value of type ‘java.lang.String‘ to required type ‘java.util.Date‘;

    解决:Failed to convert value of type ‘java.lang.String‘ to required type ‘java.util.Date‘;发生这一错误的主要原因是Controller类中需要接收的是Date类型,但是在页面端传过来的是String类型,最终导致了这个错误。这里提供两种解决方案,一种是局部转换,一种是全局转换。一.局部转换@ControllerpublicclassUserController{ @RequestMapping(value=”/login.do”) publicStr

  • grid布局方式_grid网格布局

    grid布局方式_grid网格布局GridBagConstraints特征:由GridBagConstraints类实现的布局管理器称为网格组布局管理器,它实现了一个动态的矩形网格,这个矩形风格由无数个矩形单元格组成,每个组件可以占用一个或多个这样的单元格。动态矩形网格:可以根据实际需要随意增减矩形网格的行数和列数。它实现的矩形网格的绘制方向由容器决定,网格的索引从0开始。下面写一个测试方法来讲解GridBagC

  • 测试技术提升分享_测试技术分享

    测试技术提升分享_测试技术分享在腾讯课堂上分享测试技术相关的课程也有一段时间了,同时在博客(http://blog.sina.com.cn/u/1760715297)和微信公众号上也分享了不少相关文档。现在已经有相当关注度,也有很多同学加入了我们的QQ群(867446822)积极地进行交流。但在交流过程中,也存在不少问题,有相当的同学不了解我们的课程,也不清楚如何学习,所以我写这篇文章,给大家做个指导:一,测…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号