1月3号java就考完试了,隔天考计算机系统基础,时间太紧,没把博客写完也没有写计算机系统基础,但我们不是为了考试而学习,而是为了提高自己的技术和能力学习,虽然考完了,但还是要把本应该和本计划的事完成,现在应该所有人都考完java,不过也分不同学校,考的知识点也是有些差别。现在是GUI的考试知识点,GUI考试不是重点,很少用到,但到时后面全面对java深入学习还是要深入了解,这里就先总结考试需要掌握的知识点,虽然已经考完了。不过后端基本很少使用到GUI,GUI和网络编程这两个考试知识点只考一点点,所以这里总结的考试知识点是轻量级的。
GUI有两种实现类型:AWT和Swing,考试时主要是Swing,关于AWT和Swing的区别,献上这位大佬的解释(这里就先考试知识点为主,考试的重点没有这些):
haha:[基础篇]-GUI-01-AWT与Swingzhuanlan.zhihu.com主要考试重点是对GUI怎样创建,和添加对应布局,监听器和事务处理对应复习过程一些知识点(部分知识,离散型,知识点可能不是很相关,看代码解释,具体的一些参数解释可以看jdk文档):
JFrame windowOne=new JFrame("First Windows");//创建窗口
windowOne.setBounds(x,y,x,y);//设置位置和大小
windowOne.setVisible(true);//设置是否可见
windowOne.setDefaultCloseOperation(对应常数);//设置点击关闭图标采取对应的方式
对应常数:
DO_NOTHINGON_CLOSE:什么都不做
HIDE_ON_CLOESE:隐藏当前窗口
DISPOSE_ON_CLOSE:隐藏当前窗口,并释放窗体占有的其他资源
EXIT_ON_CLOSE:结束窗口所在的应用程序
菜单:
JMenuBar:菜单条
JMenu:菜单
JMenuItem:菜单项
菜单条包括菜单,菜单包括菜单选项
用add方法添加,菜单可以再继续包括菜单,也就是JMenu里面添加JMenu。
JTextField:
单行文本
JTextAre:
文本区
JButton:
按钮
JLabel:
标签
JCheckBox:
复选框
JRadioButton:
单选按钮
JComboBox:
下拉列表
JPasswordField:
密码框
ButtonGroup:
把单选按钮放在里面才能实现单选
常用容器:
主要是JPanel
常用布局:
FlowLayout:是Panel和Applet的缺省布局管理器。
- 组件的放置规律是从左到右、从上到下进行放置 。
- 容器大小改变时,组件的大小不变,但是相对位置会发生变化 。
FlowLayout();
FlowLayout(int align );
FlowLayout(int align, int hgap, int vgap );
- 缺省的对齐方式居中对齐
- 默认的组件横纵间隔都是5个像素
- Align :对齐方式
- left ,right ,center ,leading ,trailing
- Hgap: 水平间隔
- Vgap: 垂直间隔
BorderLayout 是Window,Frame和Dialog的缺省布局管理器
- BorderLayout把容器分成5个区域:North,South,East,West和Center,每个区域只能放置一个组件。
- 容器的大小变化时,组件的相对位置不变,大小发生变化。
- 如果四周没有组件,则由中间的组件来填充;如果中间没有组件,则空着。
public BorderLayout( )
public BorderLayout(int hgap, int vgap)
- Hgap: 水平间隔,单位像素
- Vgap: 垂直间隔,单位像素
- 如果不制定间隔宽度,则组件间是彼此相邻的。
GridLayout:网格布局
public GridLayout()
public GridLayout(int rows, int cols)
public GridLayout(int rows, int cols, int hgap, int vgap)
- 默认情况下,每行一个组件。即只有一列。
- rows指定行数,cols指定列数。
- hgap: 水平间隔,单位像素。
- vgap: 垂直间隔,单位像素
CardLayout:
- 容器分成许多层,每个组件都是重叠的。
- 每个组件占据整个容器的大小。
- 每层只允许放置一个组件 。
- 一次只显示一个组件。
public CardLayout()
public CardLayout(int hgap, int vgap)
- 默认是无间隔的。
- hgap 水平间隔,表示组件左右两边和容器的间隔,以像素为单位。
- vgap 垂直间隔,表示组件上下两边和容器的间隔,以像素为单位。
GridBagLayout提供了一种强大的控制能力,它包括精确判断视窗区域如何布局,以及视窗大小变化时候该如何重新设置组件。
主要是为了辅助GUI构造工具自动生成代码
BoxLayout盒式布局,行列
null布局:空布局可以准确定位组件在容器中的位置和大小
setLayout(对应布局对象)使用对应布局
![829c2a408862d2bca00fbb9ec83bd428.png](https://i-blog.csdnimg.cn/blog_migrate/fb2f3f49b6cb65a6cc6a1142fb7474bb.jpeg)
注册对应的监听器:
用addxxxxListener(对应监听对象的引用)
该对象要实现了对应的处理方法
事件处理有很多对应的事件和对应的监听器
获取对应的事件源e.getSource()如何判断是否是指定的事件源
如果在同一个类里面,直接用类里面对应的引用然后用==判断
如果不在同一个类,就是监听器不是内部类或者是最外层类的本身,就使用传参的方法
这里我想到了多线程里面用setName的方法
如果一直用实现接口的方法去创建监听器,可能会因为接口里面有其他不需要用到的抽象方法要实现,比较麻烦,所以可以使用适配器,适配器就可以直接继承然后重写需要的方法就可以了,因为适配器里面已经帮我们重写了对应的接口方法。{}
这是我们老师GUI对应的考试知识点,再看看平时的实验代码和课件代码,课本代码了解了解应该就可以了,但要全面学习的话这些是轻量级的准备。