63行目以降の各々の入力に対するアクションリスナに、状態遷移表から、状態の判定、処理、および状態遷移する場合は次の状態設定を書き加えました。
状態遷移表の入力に対応する欄を縦に読んでプログラムにします。
CalcV9.java
プログラム CalcV9.java の解説
- 65、83行目 getActionCommand
- ボタンのアクションコマンドを取得します。
今回のようにボタン生成の際アクションコマンドを設定していない場合、ボタンのラベルが得られます。
- 168〜173行目 display
- 表示用のラベルに値を表示するメソッド。状態1 または 状態4のとき、
in の値を表示し、
状態2、または 状態3のとき、 reg の値を表示します。
- 175〜180行目 compute
- op に保存されている値、"+"、"−"、"×"、"÷" にしたがって、それぞれ
reg ← reg + in
reg ← reg - in
reg ← reg * in
reg ← reg / in
を実行します。
これらの文字は、17〜20行目で定義され、
30〜33行目と176〜179行目で参照されています。