练习

GUI编程Day03_匿名内部类

我最开始以为是这样,我的构思是做上下两个面板,然后每个面板上面盖三个面板,左右两个面板填充按钮,中间的面板再细分,甚至把每个面板的大小,位置设计好了,不过后来发现布局还是欠缺,达不到想要的效果,看了狂神的答案,人家没有特意设置每个按钮的大小位置,单纯的利用布局完成的案例

Day03.2021.08.08

狂神的思路:

GUI编程Day03_事件监听_02

GUI编程Day03_事件监听_03

GUI编程Day03_背景颜色_04

我的思路:

GUI编程Day03_事件监听_05

后来我又做了一次,出现了成果,但是其中也存在一些问题

这是我的

GUI编程Day03_布局管理器_06

GUI编程Day03_输入框_07

GUI编程Day03_背景颜色_08

GUI编程Day03_布局管理器_09

结果:

GUI编程Day03_布局管理器_10

 

麻烦了很多,也有很多问题:

  • 每一个panel都必须设置布局模式

  • flowlayout不是单纯的从左到右排下去,而是把所有内容缩小之后从左到右排下去

GUI编程Day03_背景颜色_11

  • 针对这些面板设置的尺寸不会显示在窗体中,因为布局模式的比例是固定的,比如BorderLayout,东西南北中不会因为你把左边的面板尺寸调大而改变

  • 先添加button-->panel,再添加panel-->frame,否则出现的结果很奇怪

总结:

  1. Frame是一个顶级窗口

  2. Panel无法单独显示,必须添加到某个容器中

  3. 布局管理器

    1. 流式

    2. 东西南北中

    3. 表格

  4. 大小,定位,背景颜色,监听!

4. 事件监听

事件监听:当某个事情发生的时候,干什么?

GUI编程Day03_匿名内部类_12

查看ActionListener--接口

GUI编程Day03_背景颜色_13

new接口得写实现类,可以写匿名内部类(一般不写)

GUI编程Day03_匿名内部类_14

 


GUI编程Day03_背景颜色_15

GUI编程Day03_输入框_16

优化

GUI编程Day03_背景颜色_17

多个按钮共享一个事件

GUI编程Day03_布局管理器_18

GUI编程Day03_事件监听_19

GUI编程Day03_布局管理器_20

5.输入框TextField监听

win+R输入calc打开计算器

写一个输单行入框监听

GUI编程Day03_布局管理器_21

不能换行,不知道getsource获得的是啥

GUI编程Day03_背景颜色_22

得到文本

GUI编程Day03_匿名内部类_23

输入完内容回车,控制台就显示文本

GUI编程Day03_匿名内部类_24

替换编码

输入的内容被替换成 * ,控制台显示正常的输出内容,保证安全性

GUI编程Day03_输入框_25

输入后清空

GUI编程Day03_背景颜色_26

2.6 简易计算器

组合+内部类回顾复习

oop原则:组合大于继承!

class A extends B{
   
}

class A{
   public B b;
}

基本构成

GUI编程Day03_背景颜色_27

先把框搭出来

GUI编程Day03_输入框_28

GUI编程Day03_匿名内部类_29

加功能

GUI编程Day03_背景颜色_30

GUI编程Day03_布局管理器_31