パッケージA; インポート持つjava.awt。*; 輸入java.awt.event.ActionEvent。 輸入java.awt.event.ActionListener。 輸入java.awt.event.MouseEvent。 輸入java.awt.event.MouseListener。 インポートするjavax.swing。*; パブリッククラスCalcular3はJFrameのがのActionListener、のMouseListenerを実装して延び{ プライベートint型M1 = 0、N = 0; // プライベートダブルM2 = 0; //运算的数 プライベートINTフラグ= 0。 JFrameのFを、 JPanelのP1、P2、P3; JTextFieldのtの。 JButtonのB1 [] =新しいJButtonの[18]。 = { "1"、 "2"、 "3"、 "4"、 "5"、 "6"、 "7"、 "8"、 "9"、 "0"、 "清空" [] B列、 "退格"、 "="、 "+"、 ""、 " - "、 "*"、"/"}。 パブリックCalcular3(){ fは=新しいJFrameの( "计算器")。 T =新しいJTextFieldの(35)。 P1 =新しいJPanelの(); P2 =新しいJPanelの(); } * / P3 =新しいJPanelの(); f.setBounds(100、100、400、200)。 f.add(P1、BorderLayout.NORTH)。 f.add(P2、BorderLayout.CENTER)。 f.add(P3、BorderLayout.EAST)。 p2.setLayout(新しいのGridLayout(5,3)); p3.setLayout(新しいのGridLayout(4,1)); p1.add(T)。 以下のために(INT i = 0; iは<14; I ++){ B1 [I] =新しいJButtonの(B [I])。 p2.add(B1 [I])。 B1 [I] .addActionListener(本) } (i = 14 int型、iは18 <; iは++)のための{ B1 [I] =新しいJButtonの(B [I])。 p3.add(B1 [I])。 B1 [I] .addActionListener(本) } / *(I = 0 int型、iが18 <; I ++の)のために{ B1 [I] .addActionListener(本) f.setVisible(真の); } //实现接口的方法 公共ボイドのmouseClicked(MouseEventのE){ } 公共ボイドのmousePressed(MouseEventのE){ } 公共ボイドのmouseReleased(MouseEventのE){ } 公共ボイドのmouseEntered(MouseEventのE){ } 公共ボイドのmouseExited(MouseEventのE){ } のactionPerformed公共ボイド(のActionEvent E){ 文字列str = ""; 私はint型。 用(i = 0; iが<= 9; iは++){ IF(e.getSource()== B1 [I]){ IF(I == 9){ N = N * 10。 }他{ N = N * 10 + I + 1。 } STR = String.valueOf(N); //整形N转换成字符串STR t.setText(STR); //テキストボックスに表示されます } } ための式(I = 14; iは18 <; iは++){// +、 - 、*、/ IF(e.getSource() == B1 [I]){//匹配运算符 Integer.parseInt = M1(t.getText()); IF(フラグに== 15){ M2 = M1 + M2; }そうIF(フラグに== 16){ M2 = M1-M2; }そうIF(フラグに== 17){ M2 = M1 * M2; }そうIF(フラグ== 18){あるにおいて M2 = M1 / M2; }そうM2 = M1、現在のデータM2保存する//連続操作のオペレータ不在、 IF(Iし=フラグ= 15では14 =); 他のフラグ= 16で(I == 15)IF; 他(I == 16)IFフラグに= 17; 他のフラグに= 18であり; STR String.valueOf =(B [I]); T. setText(STR); //テキストブロックに表示された N = 0; //次の記録データ復元 ブレーク; //一致するデータは、ループを終了することが見出されている } } (e.getSource()== B1 [13である])IF { = // M2 = M1 + M2; }そうIF(フラグに== 16){ M1 = Integer.parseInt(t.getText())。 IF(15 ==フラグに){ M2 = M1-M2; }そうIF {(フラグに== 17) M2 = M1 * M2; }そうでなければ(フラグに== 18である)IF { M2 = M2 / M1; }そうM2 = M1; STR = String.valueOf(M2); t.setText(STR); //テキストブロックに表示された N = 0; //次のデータレコード復元 フラグ= 0; //フラグ低減0、全く存在しないことを示します処理演算子 } IF(e.getSource()== B1 [10]){//変数が0にクリアされ 、M1 = 0; M2 = 0; フラグ= 0で; = 0 N-; t.setText(「0 「); //テキストボックスに表示 } [11] IF(e.getSource()== B1){//バックスペース M1 =(INT)(Double.parseDouble( t.getText())/ 10)。 M1 = N-; STR = String.valueOf(M1); t.setText(STR); } IF(e.getSource()== B1 [12である]){//小数点 Integer.parseInt = M1(t.getText()); = String.valueOf STR(M1 + B [12である]); t.setText(STR); //テキストボックスに表示された INT J = 0; のための(I = 0;私は= <9; Iは++){ (E IF .getSource()== B1 [I]){ J ++; M2 = Math.pow(0.1、J)* Integer.parseInt(B [I]); STR String.valueOf =(M1 + M2); t.setText( STR); //テキストボックスに表示 } } } } //メイン関数 のpublic static無効メイン(文字列[] args){ 新しい新しいCalcular3(); } }