一:我们使用到的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的卡片

四:使用面板
我们很难使用一种布局管理器实现我们想要的效果,所以我们通常使用面板将我们能看到的区域划分,然后在每一个部分上添加上我们想使用的组件,然后再将面板添加到框架中,所以基本步骤就是这样创建面板->往面板上添加组件->将面板添加到框架中

最新文章

  1. JAVA演算法---約瑟夫問題
  2. SpringMVC学习系列(8) 之 国际化
  3. 时间和地域三级联动选择器(Android-PickerView-master)
  4. BizTalk动手实验(三)BizTalk开发综合实验
  5. 正则匹配<{$vcode}>变量
  6. vmware Esxi 更换管理网卡IP
  7. 解放双手——Android自动化测试
  8. 【bzoj1061】 Noi2008—志愿者招募
  9. 20160730noip模拟赛zld
  10. [每日一题] 11gOCP 1z0-053 :2013-10-9 backup with the KEEP option....................................33
  11. Android源码学习之装饰模式应用
  12. Linux守护进程详解(init.d和xinetd)
  13. CoreAnimation学习,学习总结,记录各种过程中遇到的坑
  14. c语言一,二数组
  15. UnityEditorWindow自建窗口扩展
  16. MySQL ERROR 1045 (28000)
  17. 当删除某一个jar包时tomcat中出现problem encountered while deleting resources问题
  18. Java基础86 MySQL数据库基础知识
  19. oracle 中 dblink 的简单使用
  20. APP案例分析——Steam

热门文章

  1. Shell系列(28)- 条件判断之字符串判断
  2. contos 安装 nginx
  3. P7717-「EZEC-10」序列【Trie】
  4. POJ3734-Blocks【EGF】
  5. 1.pytest初尝试
  6. Ubuntu解决安装没有候选
  7. 2020 年国内 Serverless 用户规模:阿里云占比第一,达 66%
  8. DistSQL:像数据库一样使用 Apache ShardingSphere
  9. logstash输出到rabbitmq
  10. 洛谷3348 大森林 (LCT + 虚点 + 树上差分)