好，下面我们来看一个例子。
这个就是一个小小的计算器，这个计算器呢就可以模拟我们平时一个简单的计算器，
有各种数字，然后还有加减乘除，还有一个
CE 就是清除按钮，重置按钮，这里面
有一个文本框，这里就是按钮。所以从布局的角度我们可以
这样做，上面是一个面板，底下又是一个面板，然后这两个面板加到 整个大的这个
Frame 里头。上面这个面板又由两个部分组成。
一个是左边这个文本框，一个是按钮。那这里我们也可以 用这个 border
layout 来做，然后这里面呢 用 grid
layout 来做，然后我们添加上事件就可以。好，我们下面看看
这个代码。请看这里，我们这个 JCalculator 这个对象它是继承了
JFrame， 同时实现了 ActionListener，我们就可以呢
有 ActionPerform 方法，这里面有一系列的按钮，buttons
有个数组，然后有一个清除 按钮，还有一个用来显示的
display 这个文本框，就是 TextField。
在构造方法里面，我们做了一些工作，包括 有一个字体，这个字体有个什么字体名，字体的
那个样式，就是粗体，字体大小等等。最重要就是我们有两个面板，一个是头部面板，P- anel
Head，然后一个呢是 PanelBody。那我们在界面对象里面命名的时候呢，有一种
命名方法，这个命名方法叫匈牙利命名法，也就是说是一个匈牙利
籍的工程师发明的一个方法，也可以参考这个方法。
它是命名就在前面用几个字母表示它是什么类型，比如说 Panel 就用关键字母
pnl 表示它是一个面板，然后呢再用一个
单词，或者两个单词表示这个面板的用途，也就是说它既表明了类型，又表明了用途。
所以这个方法挺好的，大家可以借鉴。
所以上面这个面板它是一个 border layout，border layout，然后有
一个显示区域是用 CENTER，那么东边也就是右边，
它显示的用一个 reset 按钮，所以把这个加进去。然后底下这个面板呢，
是一个 Body，主体区呢是加了很多按钮，加了很多按钮，就是
add 了很多按钮， 就加减乘除啊，1 2 3 4都加进去。
然后这个整个 Frame 的 layout，又是一个 border
layout，我们把头部呢 加到北边 north 上边，然后 Body 呢加到 center 里面。
好，这是我们整个的面板和布局。
下面就是 add ActionListener，那么这个每一个按钮的 add ActionListener 都是
this，这个 this 是因为我们当前这个对象呢 就实现了这个
Listener，也就是说里面有一个 ActionPerform
的方法，这个 Action Perform 的方法里面有一个 ActionEvent 事件。
我们用 getSource 从而得到这个事件发出的对象，
发出的对象，这个对象呢我们根据这个对象它是什么，比如说它是重置按钮， 我们就调这个方法，如果它是 1 2 3 4
5 6 7 8 9 啊什么 等等，点啊，就调这个数字，处理数字，
那么否则就是加减乘除，我们就处理这个操作服务加减乘除。
那处理数字加减乘除呢，这里面一个基本的要素是
我们在这里呢有几个变量，程序里面最核心的就是变量。
那这个变量里面呢就是它是不是最开始那个数字，有点特殊性，最开始那个数字呢
也就是我们按了比如说加减乘除后，又开始一个数字，所以要马上开始数字呢，我们有个状态，
那么在数字的状态下呢，我们就直接数字连数字，数字连接数字，所以这个时候呢
有一个状态，然后这里呢就是我们当前记录的这个结果，然后还有呢
上一次按的这个加减乘除我们得记下来。比如上次按了加我们
在按下一次的时候我们得把上次的那个加号给加起来，就是记录的上一次的运算那个
符号。处理数字呢比较简单，如果是开始是第一个，要马上开始第一个数字呢，直接
把这个，我们的这个数字放上去就可以了。
否则的话，我们是把它加上这个，就把已经有的那个
数字加上当前输入的数字，就是 setText，getText
加上。然后 如果是小数点，那么小数点得稍微处理，如果已经有小数点我们就不能
动作了，所以如果是没有小数点，我们把这个小数点给加到那个显示面板上去。
然后重置呢就是回到初始状态，这个代码呢大家可以细看，我这里
就不详细讲。然后当然核心的就是，当然如果是我们加减乘除 就根据我们原先的这个
operator 加减乘除来加减乘除，再等，所以呢计算结果。
同时呢把这个新的，因为我们又新按了一个 operator，
把这个新的 operator 把它记下来，以便于下一次呢
再重新运算，同时呢 告诉它又要准备接收一个新的一个数字了，
就这么一个状态。所以这个程序呢还是挺好的。