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,四种整型之间的区别:申 ...
随机推荐
- Shell系列(22)- 字符截取命令awk
简介 awk是一个数据处理工具,相比于sed常常作用于一整行的处理,awk则比较倾向于将一行分成数个"字段"来处理 awk的流程是依次读取每一行数据,读取完一行数据后,进行条件判断 ...
- Park-2018论文
太阳射电图:Solar magnetograms, EUV images, GOES X-ray flux data. Magnetograms: http://solar-center.sta ...
- centos7 发送邮件
yum install sendmail mailx sharutils mutt libreport-plugin-mailx -y yum update libreport-plugin-mail ...
- LaTeX Vscode 配置
安装:https://www.latexstudio.net/archives/51801.html LaTeX 安装 & 宏包升级 & 入门:https://blog.csdn.ne ...
- netty系列之:使用netty搭建websocket客户端
目录 简介 浏览器客户端 netty对websocket客户端的支持 WebSocketClientHandshaker WebSocketClientCompressionHandler netty ...
- WPF实现聚光灯效果
WPF开发者QQ群: 340500857 | 微信群 -> 进入公众号主页 加入组织 前言 效果仿照 CSS聚光灯效果 实现思路: 1. 设置底部Canvas背景色 #222222 . 2. ...
- 从commons-beanutils反序列化到shiro无依赖的漏洞利用
目录 0 前言 1 环境 2 commons-beanutils反序列化链 2.1 TemplatesImple调用链 2.2 PriorityQueue调用链 2.3 BeanComparator ...
- hdu3001(三进制状压)
题目大意: 现在给你一个有n个点和m条边的图,每一条边都有一个费用,每个点不能经过超过两次,求所有点至少遍历一次的最小费用 其中n<=10 m没有明确限制(肯定不会超过1e5) 一看到这个数据范 ...
- SpringBoot整合JDBC-调用数据库
SpringData 对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库),Spring Boot 底层都是采用 Spring Data 的方式进行统一处理. Sprin ...
- 手摸手教你用 yapi-to-typescript生成Yapi的TypeScript数据类型
一 背景 现代社会比较重视效率,本着这个思想宗旨,能用工具自动高效做的事情,就不要低质量的勤奋.yapi-to-typescript就是一款自动生成接口请求与响应的typescript数据类型定义的工 ...