>>31
>1を押したら11、2を押したら22
に関しては挙げられたところに問題があるんではなくて
それらのコードを実装しているところに問題があるんではないでしょうか

それらの処理が"1"とかを押したときのイベントで2回呼び出される実装になってしまっている
ということのようにも思えます
(つまり挙げるならその部分のコードが必要ということ)

些細なことですけど(なので組み方はどっちでもいい)
また学んでいる段階として、以下はまだ考える必要はないのかも知れないですけど

それらのコードに至るまでのところって、押されたキーに対してそのまま文字"1","2"が来てるだろうと思うのですけど
そのままStringとして処理したのでもいいんじゃないかと

>GUIを使って電卓のようなものを
ということなので、"+"とか"-"とかに対して計算を行う際にIntegerなりにして演算してやるとか
コードもスッキリするかも

また"if(key!=0)"は要らないんじゃないかと
示されたコードの+1とか+2とかやっているところは変数に入れて渡すという手がありますよね
(「0を押した時」「1を押した時」とか個別にコードを書く必要がなくなる)

>クリアを押した時。
の動きは>>39に指摘もあるけど
電卓の"→"キーみたいなもののつもりなんでしょうか
クリアと言っているところから"AC","CE"キーのつもりかな?とも
思えたりしますけど
("if(key!=0)"としているところが、また解り難くしているのか?)