`
tsw1107
  • 浏览: 1606 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

JavaSE GUI 笔记

阅读更多


一.AWT(abstract window toolkit)
1.用于java application GUI编程
2.GUI的各中元素(如:窗口、按钮、文本框等)由java类来实现
3.awt涉及的类在java.awt包及其子包中
       awt是旧的图形开发包,因为虽说是跨平台但在各操作系统上的图形表示有区别
       swing是新的图形开发包,其包下的类大都是对awt的类重写,名字多以J开头,如JFrame
4.Container和awt中的两个核心类
5.说明图

Component层次结构图

 


二.Component&Container
1.java的图形用户界面基本的组成部分是Component
2.一般的Component对象不能独立的显示,必须放到Container对象中才可显示
3.Container可以容纳Component,因为Container同时也是Component,所以Container也可以容纳Container.
4.Container使用add(..)方法添加Component
5.常用的两种Container:
   Window:作为顶级窗口独立存在
   Panel:可容纳其他Component,但必须被添加到其他窗口(Window或Applet)才能显示.

 

     Frame:
         1.Frame是Window的子类,由Frame或其子类创建的对象为一个窗体
         2.Frame的构造方法
            Frame()
            Frame(String s)创建标题栏为字符串s的窗口
         3.其他方法
            setBounds(int x,int y, int width,int height)//位置和大小
            setSize(int width,int height)//大小
            setLocation(int x,int y)//位置
            setBackground(Color c)//背景颜色.Color类有很多常量可以使用,(x,y,z)表示颜色红绿蓝分量
            setVisible(boolean b)//是否可见
            setTitle(String name) String getTitle()//标题
            setResizable(boolean b)//是否可调整大小
         练习1:创建一个Frame对象,并给它赋值
         练习2:继承一个Frame的新类,要求一个静态变量统计创建的对象数目,以及其构造函数可以接收多个参数来初始化这个对象,一次显示四个对象

 

     Panel:
         1.可以容纳Component
         2.可以拥有自己的布局管理器
         3.构造方法
             Panel()默认的的布局管理器是FlowLayout
             Panel(LayoutManager mgr)//指定布局管理器来初始化
         4.从父类继承的方法
             setBounds(int x,int y, int width,int height)
             setSize(int width,int height)
             setLocation(int x,int y)
             setBackground(Color c)
             setLayout(LayoutManager mgr)//指定布局管理器
         练习1:将一个Panel添加到Frame中,注意一下Panel的位置
         练习2:将四个Panel添加到Frame中,用颜色来区分,排成两行两列

 

三.布局管理器
1.布局管理器可以管理Component在Container中的布局,不必直接设置Component的位置和大小
2.每个Container都有一个布局管理器对象,当容器需要对某个组件进行定温或判断其大小尺寸时,就会调用其对应的布局管理器,调用Container的setLayout方法改变布局管理器对象
3.常见的五种布局管理器(实现LayoutManager)
  (1)FlowLayout
         不改变组件大小,按组件原有尺寸显示组件,可设置不同组件间距,行距以及对齐方式
         是Panel类的默认布局管理器,默认对其方式为居中
         对组件逐行定温,行内从左到右,一行排满后换行
         构造方法:
               new FlowLayout(FlowLayout.Right,20,40)//设置对齐方式、水平和垂直间距
               new FlowLayout(FlowLayout.Right)//默认水平和垂直间距为5像素
               new FlowLayout()//默认居中的对齐方式,水平和垂直间距为5像素
  (2)BorderLayout
          将整个容器分"东西南北中"五个区域,"南北"在水平方向伸缩,"东西"在垂直方向伸缩,"中"可向水平和垂直方向伸缩
          是Frame类的默认布局管理器
          如果不指定组件添加到哪个区域,则默认加入到"中"区
          每个区域只能加入一个组件,如果多加则先前加入的会被覆盖
  (3)GridLayout
          将空间划分成规则的矩形网格,每个单元的区域大小都一样。
          组件被添加到每个单元格中,先中左到右,再从上到下
          构造方法:
                GridLayout(3,4)
  (4)CardLayout
  (5)GridBagLayout


四.事件监听
1.Listener
     事件模型在awt、swing、jsf和webWork上都有应用
     事件模型的原理与钩子函数、回调函数类似
2.Adapter
     对于的监听器,也有对应的适配器
     使用适配器可以避免监听器类定义没有必要实现的空方法


五.JAVA图形
1.TextField、Label、Button
      学习一个类,办法是写一个测试类测试属性和方法
      练习:编写一个运算器,按"="按钮将两个文本框的值相加,然后显示到第三个文本框,分别使用门面模式或内部类实现监听器接口
     门面模式:通过一个类的引用可以取得该类的属性和方法
2.Graphics
每个Component都有一个paint(Graphics g)实现绘图目的,每次重画该Component时都自动调用paint方法
repaint--调用-->update()--调用--paint()
Graphics类中提供了许多绘图方法,如:
drawRect(int x,int y,int width,int height)
fillRoundRect(int x,int y,int width,int height)


六window事件
事件-事件监听器-事件监听器的命名:XxxEvent-XxxListener-XxxAdapter
MouseEvent-MouseListener-MouseAdapter
WindowEvent-WindowListener-WindowAdapter
练习:测试键盘事件


七内部类:
内部类分成员内部类(作为包装类的成员变量)和匿名类(位于方法参数,例如关闭窗口等执行一次的操作)
非常方便的访问包装类的成员变量或成员方法
不允许或不需要其他类进行访问
当一个类需要实现两个接口,而这两个接口有同样的方法需要实现,则可以在类添加一个内部类来实现不同的接口

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    兴顺物流管理系统 JAVA毕业设计 源码+数据库+论文+启动教程(SpringBoot+Vue.JS).zip

    兴顺物流管理系统 JAVA毕业设计 源码+数据库+论文+启动教程(SpringBoot+Vue.JS) 项目启动教程:https://www.bilibili.com/video/BV11ktveuE2d

    技术资料分享SN75176B电子技术资料.zip

    技术资料分享SN75176B电子技术资料.zip

    基于Android Studio开发的选课系统源代码

    基于Android Studio开发的选课系统源代码

    arcgis符号库整理

    共117个字体库,102个符号库,能满足大部分项目使用。

    西南交通大学-数据结构实验报告-关键路径

    实验内容及要求: 用字符文件提供数据建立AOE网络邻接表存储结构,编写程序,输出一条关键路径以及工程的最短完成时间。输出的关键路径用该路径上全部顶点的拓序有序序列表示。 实验目的:掌握图的邻接表存储结构;掌握基于拓扑排序算法的关键活动求取算法;自拟输出出一条关键路径的算法。 数据结构设计简要描述: 使用AOE网络邻接表存储结构,以及堆栈来完成。 算法设计简要描述: 先采用邻接表的存储结构创建图,然后创建并初始化indegree数组,所有顶点的最早开始时间初始化为0,然后前向递推(拓扑排序),得到每个结点最早开始时间。然后开始反向递推,得到每个结点最晚开始时间。最后从源点开始,向后寻找最早开始时间和最晚开始时间相同的结点,依次组成关键路径。 输入/输出设计简要描述: 在字符文件中依次输入节点数n,弧数e,以及e条有向弧对应的始点、终点、权重。之后创建邻接表。通过计算后,输出其中一条关键路径,将路径上的结点按路径方向依次输出,同时输出最短时间。 编程语言说明: 使用Visual C++编程。 主要代码采用C语言实现 ;输入与输出采用C++的cin和cout流;程序注释采用C

    电路基础-nidmsrv软件

    NIDMSRV(通常表现为nidmsrv.exe进程)与National Instruments(美国国家仪器公司,简称NI)的LabVIEW软件紧密相关。LabVIEW是一种图形化的编程语言,广泛用于快速创建灵活且可升级的测试、测量和控制应用程序。以下是NIDMSRV的主要用处及相关功能概述: 一、作为LabVIEW相关程序 NIDMSRV是LabVIEW软件的一部分,它可能涉及到软件内部的一些服务或进程,这些服务或进程对于LabVIEW的正常运行或特定功能的实现至关重要。例如,它可能用于支持LabVIEW中的网络通信、远程访问或数据共享等功能。 二、支持Web服务部署 在LabVIEW环境中,NIDMSRV可能与NI的Web服务器相关,用于部署和托管Web服务应用程序。这些Web服务可以使得LabVIEW创建的应用程序能够通过Web浏览器进行访问和控制。这对于需要远程监控或控制的应用场景特别有用。 具体来说,NI的Web服务器(如应用程序Web服务器、系统Web服务器或较新的基于Apache的NI Web服务器)可能会使用NIDMSRV来提供相关的Web服务。这些服务器允许开

    小程序基于ssm 购物系统设计与实现

    【资源说明】 1、开发环境:小程序;ssm框架;内含Mysql数据库;内含说明文档 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 4、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。

    技术资料分享PDIUSBD12-cn电子技术资料.zip

    技术资料分享PDIUSBD12_cn电子技术资料.zip

    技术资料分享AT45DB161B电子技术资料.zip

    技术资料分享AT45DB161B电子技术资料.zip

    多项背包问题数学模型及其分解方法的研究进展

    内容概要:本文探讨了多容器(即多个背包)下的最优装载问题——多项背包问题。该问题需要对每个拥有利润和重量的项目进行优化分配,确保它们被放入容量不同的若干背包中,使得各个背包内的物品总量不超过其最大载荷,同时获得最大的总体收益。文中介绍了现有的主要研究成果,其中包括经典数学模型与改进方法。提出了两项新的拟线性公式,以及为解决实际问题设计的特定分解算法,并展示了这些新方法的有效性。 适合人群:运筹学研究者、组合优化专业人士以及相关领域的学者和技术工作者。 使用场景及目标:适用于物流、供应链管理和资源分配等领域中的多种装包、装载任务优化问题,旨在提供理论依据和技术支持以提高运营效率和资源利用率。 阅读建议:尽管文中涉及大量复杂的数学公式和算法描述,但作者们已尽量用通俗易懂的语言来解释每一个步骤和概念,因此建议读者耐心研读,特别是在遇到难以理解的内容时可查阅更多资料辅助理解。

    西南交通大学-数据结构实验报告-哈希表的建立与查找

    实验内容及要求: 编写控制台应用程序,提供以下菜单项: 1. 插入关键字 2. 删除关键字 3. 查找关键字 4. 结束程序 其中,“插入关键字”是指从键盘输入一个关键字,将关键字插入哈希表中,若插入的关键字已存储于哈希表中,则插入失败,显示提示信息;若插入关键字数目已超过哈希表设计容量,则插入失败,显示提示信息;其它情况则插入成功,显示提示信息。程序初始运行时,哈希表为空,通过插入多个关键字建立哈希表。 “删除关键字”是指从键盘输入一个关键字,若在哈希表中查找成功,则将关键字从哈希表中删除;若查找失败,显示提示信息。 “查找关键字”是指从键盘输入一个关键字,在哈希表中查找,显示查找成功与失败的提示信息。 已知哈希函数H(K)=K mod m,其中m为哈希表长度(程序中m应不小于10)。可选择用二次探测再散列或链地址法解决冲突。若选用二次探测再散列,装填因子设为0.8;若选用链地址法,要求哈希表允许的关键字最大数目为2m。 提示:选用二次探测再散列时,空闲元素位置应存入“哑元素”占位,以标识元素位置空闲。

    【IEA-2024研报-】2024年全球天然气安全评估(英)-93份.pdf

    行业研究报告

    100套优质springboot毕设+技术文档+论文(四,这是最后的20套)

    最新100套优质springboot毕设+技术文档+论文,每套都有论文和文档,论文很生动详细,代码设计清晰,文档齐全,这是最后的20套

    led-tcp-masap自开发

    sap自开发

    社会实习近况总结与反思:从校园步入职场的重要过渡

    内容概要:本文为作者2016年见习总结,通过两次实习的经历,详细记录了自身的变化、收获与思考。首次实习帮助其理解社会责任感与职业道德,锻炼动手能力和人际交往技能;第二次则使其意识到理论与实践间的巨大鸿沟,认识到自我技能的短板及职业发展的方向。文中强调了理论与实践结合、实习的重要性及其对职业发展和个人素质提升的作用。 适合人群:正在准备步入职场的大三学生或者即将毕业的社会新鲜人,以及希望提升职场软技能(如团队合作、客户服务技巧)的职业人士。 使用场景及目标:作为一篇案例分享,旨在鼓励大学生积极投身实习项目,增强自身的竞争力。阅读本文可以启发读者如何利用有限的机会最大限度地学习成长,更好地规划职业生涯道路。 其他说明:实习是连接学校教育和社会需求之间的桥梁,通过实习可以让年轻人提前体验真实世界的工作节奏,有助于发现自身的兴趣点与潜力所在。文章还提到实习不仅仅是获得工作经验,更重要的是学会自我认知和发展定位,从而为未来的职业选择提供科学依据。

    【无人机】无人机轨迹跟踪含Matlab源码.rar

    【无人机】无人机轨迹跟踪含Matlab源码.rar

    YALMIP-develop (2).zip

    人工智能

    学生考勤管理系统 JAVA毕业设计 源码+数据库+论文+启动教程(SpringBoot+Vue.JS).zip

    学生考勤管理系统 JAVA毕业设计 源码+数据库+论文+启动教程(SpringBoot+Vue.JS) 项目启动教程:https://www.bilibili.com/video/BV11ktveuE2d

    【数据分析】基于贝叶斯推理估计稳态 (ST) 和非稳态 (NS) LPIII 模型分布拟合到峰值放电Matlab代码.rar

    CSDN海神之光上传的代码均可运行,亲测可用,直接替换数据即可,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    【响应式APP下载页】轻量级APP下载页源码+自适应手机版+不含后台.zip

    APP下载页源码(自适应手机版)原创设计、手工书写HTML5+Css;注意本源码不包含后台,轻量级响应式APP下载页源码!

Global site tag (gtag.js) - Google Analytics