Java学习笔记:GUI基础
一:我们使用到的java GUI的API可以分为3种类:
- 组件类(component class)
- 容器类(container class)
- 辅助类(helper class)
1:组件类:组件类是用户用来创建界面的,Component类的实例可以显示在屏幕上,Component类是包含容器类的所有用户界面的根类,JComponent是轻量级组件类的根类。
2:容器类:
| 容器类 | 说明 |
|---|---|
| java.awt.Container | 对于组件分组,Frame(框架),Panel(面板)都是它的子类 |
| javax.swing.JFrame | 一个不能包含在另一个窗口的窗口,用于存放其他的组件 |
| java.swing.JPanel | 可做画图的画布 |
| java.swing.JApplet | Applet的一个子类 |
| java.swing.JDialog | 一个弹出式窗口或者消息框 |
3:辅助类:
| 辅助类 | 说明 |
|---|---|
| java.awt.Graphics | 绘制字符串,线,和简单图形 |
| java.awt.Color | 处理颜色,为JFrame指定背景色 |
| java.awt.Font | 指定文字的字体,风格 |
| java.awt.FontMetrics | 获取字体属性 |
| java.awt.LayoutManger | 布局管理器 |
二:框架,创建一个用户界面需要创建一个框架来呈放用户界面的组件。一般我们用JFrame,有了框架之后我们就可以向框架中加入组件等东西。
三:布局管理器
就是管理我们怎样在一个框架上布局东西的,实际上我们先将东西按照一定规则放置在布局管理器上,然后布局管理器再将东西放到框架之上,然后就呈现出来了我们想要的格式。
1:FlowLayout:默认按照从左往右的顺序排列组件,如果一行放不下,放到下一行。有三种对齐方式可供选择。
| UML | 作用 |
|---|---|
| -aligment:int | 对齐方式 LEFT=0,CENTER=1,RIGHT=2,LEADING=3 |
| -hgap:int | 布局管理器的水平间隔 |
| -vgap:int | 布局管理器的垂直间隔 |
| +FlowLayout() | 默认的构造方法 |
| +FlowLayout(aligment:int) | 设置默认对齐方式 |
| +FlowLayout(aligment:int,hgap:int,vgap:int) | 设置对齐方式,水平间隔和垂直间隔 |
2:GridLayout:网格布局管理器,可以指定每行每列放几个元素,但是行的优先级比列高。
| UML | 作用 |
|---|---|
| -rows:int | 布局管理器中的行数比列优先 |
| -columns:int | 布局管理器的列数 |
| -hgap:int | 布局管理器的水平间隔 |
| -vgap:int | 布局管理器的垂直间隔 |
| +GridLayout() | 默认的构造方法 |
| +GridLayout(rows:int,columns:int) | 设置指定行数的列数的GridLayout |
| +GridLayout(rows:int,columns:int,hgap:int,vgap:int) | 设置行数,列数,水平间隔和垂直间隔 |
3:BorderLayout:将容器分为5个部分:东,南,西,北,中,可以用BorderLayout.EAST ,BorderLayout.SOUTH,BorderLayout.WEST,BorderLayout.NORTH,BorderLayout.CENTER分别设置组件的位置。
| UML | 作用 |
|---|---|
| -hagp:int | 水平间隔 |
| -vgap:int | 垂直间隔 |
| +BorderLayout() | 创建一个默认的BorderLayout |
| +BorderLayout(hgap:int,vgap:int) | 创建指定水平间隔和垂直间隔的管理器 |
4:cardLayout:顾名思义,就像一张张卡片一样去管理我们的每一个Panel,像一副扑克牌,只最上面的才会被看到。一般我们CardLayout card = new CardLayout然后再JPanel cardPanle = new JPanel(card)这样cardPanel就是一个CardLayout的类型的了。
| UML | 作用 |
|---|---|
| -hagp:int | 水平间隔 |
| -vgap:int | 垂直间隔 |
| +CardLayout() | 创建默认的布局管理器 |
| +CardLayout(hagp:int,vgap:int) | 指定水平和垂直间隔 |
| +card.first(cardPanel) | 显示cardPanel的第一张卡片 |
| +card.last(cardPanel) | 显示cardPanel的最后一张卡片 |
| +card.pervious(cardPanel) | 显示cardPanel的前一张卡片 |
| +card.next(cardPanel) | 显示cardPanel的后一张卡片 |
| +card.show(cardPanel,String name) | 显示cardpanel中名称为name的卡片 |
四:使用面板
我们很难使用一种布局管理器实现我们想要的效果,所以我们通常使用面板将我们能看到的区域划分,然后在每一个部分上添加上我们想使用的组件,然后再将面板添加到框架中,所以基本步骤就是这样创建面板->往面板上添加组件->将面板添加到框架中。
Java学习笔记:GUI基础的更多相关文章
- Java学习笔记之---基础语法
Java学习笔记之---基础语法 一. Java中的命名规范 (一)包名 由多个单词组成时,所有字母小写(例如:onetwo) (二)类名和接口 由多个单词组成时,所有单词首字母大写(例如:OneTw ...
- java学习笔记之基础篇
java选择语句之switch //switch可以用于等值判断 switch (e) //int ,或则可以自动转化成int 的类型,(byte char short)枚举jdk 7中可以防止字 ...
- Java学习笔记-GUI
Java也提供图像化编程 图形化 GUI(图形用户界面) GUI Graphical User Interface(图形用户接口) 用图形的方式,来显示计算机操作的界面,这样更方便更直观 CLI Co ...
- java学习笔记之基础语法(一)
1.java语言基础由关键字.标识符.注释.常量和变量.运算符.语句.函数和数组等组成. 2.1关键字 定义:被java语言赋予了特殊含义的单词 特点:关键字中所有的字母都是小写. 2.2用于定义数据 ...
- JAVA学习笔记之基础概念(一)
一.Java 简介: Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称. 由 James Gosling和同 ...
- java学习笔记之基础知识
1.class不加修饰符默认default,只在当前包里能用. 2.构造函数前面的修饰符的作用类似class的,限制引用的权限. 3.java对象的创建其实就是类的实例化,类的实例化就是在堆上copy ...
- java学习笔记之基础语法(二)
1.数组: 概念:同一种类型数据的集合,其实,数组就是一个容器 优点:可以方便的对其进行操作,编号从0开始,方便操作这些元素. 2,数组的格式 元素类型[]数组名=new 元素类型[数组元素个数]: ...
- Java学习笔记之基础语法(数组)
数组 数组概述:是具有相同数据类型的数据的集合 数组的定义:数据类型 数组名 [] 数组特点: 1,数组是引用数据类型. 2,数组值用大括号,元素之间用逗号隔开,元素的个数是0-N个 3,数组长度是固 ...
- Java学习笔记之基础语法(顺序,条件,循环语句)
顺序结构:自上而下 条件分支选择结构: if条件语句 1,一旦某一个分支确定执行以后,其他分支就不会执行.if后面的条件必须是boolean类型 2,if 后面如果不加大括号,默认相邻的下一 ...
- Java学习笔记之基础语法(数据类型)
8种基本数据类型 整型: byte[1字节] short[2字节] int[4字节] long[8字节] 1,四种整型之间的区别:申 ...
随机推荐
- pycharm 增删改查 mysql数据库
1.pycharm创建mysql数据表######################################################import pymysql# 创建连接con = p ...
- django url配置-反向解析-视图函数-HttpRequest对象-HttpResponse对象-cookies-session-redis缓存session
""" --视图概述:-- 作用:视图接受WEB请求,并响应WEB请求 本质:视图就是一个python中的函数 响应: 1.网页: 一.重定向 二.错误视图 400,50 ...
- AVS 端能力之音频播放模块
功能简介 音频播放 音频流播放 URL文件播放 播放控制 播放 暂停 继续 停止 其它功能(AVS服务器端实现) 支持播放列表 支持上一首下一首切换 支持电台 事件指令集 AudioPlayer 端能 ...
- P3480-[POI2009]KAM-Pebbles【阶梯博弈】
正题 题目链接:https://www.luogu.com.cn/problem/P3480 题目大意 \(n\)个石头堆上进行\(\text{Nim}\)游戏,不过需要满足每次操作前后都有\(a_i ...
- P5666-[CSP-S2019]树的重心【树状数组】
正题 题目链接:https://www.luogu.com.cn/problem/P5666 题目大意 给出\(n\)个点的一棵树,对于每条边割掉后两棵树重心编号和. \(1\leq T\leq 5, ...
- sessionId在小程序中的妙用
前言:小程序发送短信验证码需要在后台储存生成的code,一次会话应放入session中,请求头部发送sessionId验证为同一session 1.页面一加载就从后台获取sessionId,储存在本地 ...
- 深度学习--GAN学习笔记
生成模型 WGAN Blog GAN 推荐学习网站 生成模型 什么是生成模型? GMM: 用来做聚类,(非监督学习) NB(朴素贝叶斯):(监督学习,可以用来做垃圾邮件分类) Logistics 回归 ...
- asp.net core 中配合响应 html5 的音视频播放流,以及文件下载
一.asp.net core 中配合响应 html5 的音视频播放流,以及文件下载 问题描述: 目前测试了在 Windows(谷歌浏览器).Android(系统浏览器.QQ.微信).iOS 三个系统不 ...
- 函数式编程 —— 将 JS 方法函数化
前言 JS 调用方法的风格为 obj.method(...),例如 str.indexOf(...),arr.slice(...).但有时出于某些目的,我们不希望这种风格.例如 Node.js 的源码 ...
- 海信A6/A6L A7Pro/CC A5PRO/A5PRO CC 安装gms google service指南
用过海信双面屏或者eink手机的朋友都知道,海信手机就是死活安装不了谷歌全家桶,因为海信的领导说跟谷歌有协议不能安装谷歌框架(还说后期google审核坚决不给安装,人家其他ov mui都可以安装).不 ...