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,四种整型之间的区别:申 ...
随机推荐
- python编码问题:UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 68: illegal multibyte sequence
import yaml def test_yaml(): f = open('C:\hogwarts\Scripts\hogwarts-api\demo\yaml_data.yml') print(y ...
- 如何在Ubuntu 18.04安装Git
在Ubuntu 18.04安装Git 更新apt包列表 apt-get update -y apt-get upgrade -y 安装Git: apt install git 检查Git版本 git ...
- [转载]解决虚拟机中Centos7出现错误:Failed to start LSB: Bring up/down networking
1.执行 service network restart 出现以下错误 Restarting network (via systemctl): Job for network.service fai ...
- UOJ#454-[UER #8]打雪仗【通信题】
正题 题目链接:https://uoj.ac/problem/454 题目大意 \(Alice\)有一个长度为\(2n\)的\(01\)串,\(Bob\)有\(n\)个在\([1,2n]\)位置的下标 ...
- 从零开始部署 Yapi(Windows+Nginx)
一.环境准备及安装 本文中是以本地 Windows 作为安装环境,Nginx 做反向代理,亲测验证可用. Yapi 运行需要的环境: Nodejs,MongoDB 安装包都在文档末尾处 1.1 安装 ...
- 密码学系列之:1Password的加密基础PBKDF2
目录 简介 PBKDF2和PBKDF1 PBKDF2的工作流程 详解PBKDF2的key生成流程 HMAC密码碰撞 PBKDF2的缺点 总结 简介 1password是一个非常优秀的密码管理软件,有了 ...
- Redis之品鉴之旅(六)
持久化 快照的方式(RDB) 文件追加方式(AOF) 快照形式: save和bgsave能快速的备份数据.但是.........., Save命令:将内存数据镜像保存为rdb文件,由于redis是单线 ...
- mybatis plus 一对多,多表联查的使用小记
阅读本博文需要有基础的mybatis以及mybatis plus知识,如果没有建议您了解相关的内容 本项目使用的是springboot构建的,数据库字段命名不严谨仅做演示测试使用,本文不做相关源码的解 ...
- 关于django配置好静态文件后打开相关图片页显示404的解决方法
在url里设置以上代码即可,即可解决图片显示异常(出现此问题的根本原因是django版本)django3后需要加以上代码)
- 普通用户在命令终端使用Python脚本连入校园网
普通用户在命令终端使用Python脚本连入校园网 想要连入校园网的步骤: 浏览器输入对应的IP地址,输入账号密码连网: 下载对应软件,输入账号密码连网: 而面对没有界面的服务器,而你又没有root权限 ...