この記事では、Javaで計算機を作成するための一般的な方法をまとめたものです。次のように、参照のために共有してください。
方法1:
パッケージwanwa; import java.awt。*; import java.awt.event。*; import javax.swing。*; public class calculatorはjframe {private container container; private gridbaglayoutレイアウト;プライベートグリッドバグカクストールの制約;プライベートjtextfieldディスプレイフィールド;結果; //計算結果を保存しますプライベートブールスタート; //それが数のパブリック計算機の始まりであるかどうかを決定します{super( "calculature"); container = getContentPane(); layout = new gridbaglayout(); container.setLayout(レイアウト); jtextfield(20); displayfield.sethorizontalAlignment(jtextfield.right); constraints.gridx = 0; constraints.gridy = 0; constraints.gridwidth = 4; constraints.gridheight = 1; constraints.fill = gridbagconstraints.both; constraints.weights.weight = 100; discrants.weights.setconstraints.weight = 100;制約); container.add(displayfield); actionlistener insert = new Insertaction(); actionListener command = new Commandaction(); // addbutton( "backspace"、0、1、2、1、insert); // addbutton( "ce"、 "ce"、2、1、1、1、insert); 0、2、1、1、挿入); addButton( "8"、1、2、1、1、挿入); addButton( "9"、2、2、1、1、insert); addButton( "/"、3、2、1、1、コマンド); addbutton( "4"、0、3、1、1、insert); 3、1、1、挿入); addButton( "*"、3、3、1、1、コマンド); addButton( "1"、0、4、1、1、insert); addButton( "2"、1、4、1、1、insert); addButton( "3"、2、4、1、1、insert); 0, 5, 1, 1, insert);// addButton("+/-", 1, 5, 1, 1, 1, 1, insert);// Only display the "-" sign, "+" has no practical value addButton(".", 2, 5, 1, 1, insert);addButton("+", 3, 5, 1, 1, command);addButton("=", 0, 6, 4, 1, command); this.SetSizable(false); setSize(180、200); setVisible(true);} private void addbutton(string label、int row、int column、int with、int height、actionlistenerリスナー){jbutton button = new jbutton(label); constraints.gridx = row; constraints.gridths.gridwidth = constraintss.gridwidth height; constraints.fill = gridbagconstraints.both; button.addactionlistener(リスナー); layout.setconstraints(button、constraints); container.add(button);} private class insertaction actionlistener {public void actionperformed(actionevent event){string input = event.getactioncommand(in is) {displayfield.settext( ""); start = false; if(input.equals( "+/-"))displayfield.settext(displayfield.getText()+" - ");} if(!input.equals( "+/-")){if(input.equals( "backspace")){string str = display.get.text.gettext.gettext.lengt(); displayfield.settext(str.substring(0、str.length() - 1));} else if(input.equals( "ce")|| input.equals( "c")){displayfield.settext( "0"); start = true;} elsedisplayfield.settext.settext(displayfield.getext() +入力} +入力); void actionperformed(actionevent evt){string command = evt.getActionCommand(); if(start){lastCommand = command; } else {calculate(double.parsedouble(displayfield.getText()); lastcommand = command; start = true; }}} public void calculate(double x){if(lastcommand.equals( " +"))result += x; else if(lastcommand.equals( " - ")result- x; else if(lastcommand.equals( " *")result *= x; els(lastcommand.equals( " /")rest /= x; x; displayfield.settext( "" + result);} public static void main(string [] args){calculature calculate = new calculator(); calculator.setDefaultCloseoperation(jframe.exit_on_close);}}}方法2:
import java.awt。*; import java.awt.event。*; public class mycalculator {private frame f; Private Textfield tf = new Textfield(30);プライベートの長い結果; private boolean append = false;プライベートチャーオペレーター= '=';プライベートボタン[] btn = newボタン[15]; public mycalculator(){initcomponent(); } private void initcomponent(){f = new Frame( "My Calculator v1.0"); f.setlayout(new borderlayout()); //フレームはborderlayout f.addwindowlistener(new windowadapter(){public void windowclosing(windowevent evt){system.exit(0);}});パネルCenterPanel = new Panel(); centerpanel.setLayout(new gridlayout(5、3)); //パネルはgridlayout numberlistener nl = new numberlistener()を使用します。 operatorListener ol = new OperatorListener(); btn [10] = new Button( "+"); btn [11] = new button( " - "); btn [12] = new button( "*"); btn [13] = new button( "/"); btn [14] = new button( "="); for(int i = 0; i <= 9; i ++){btn [i] = new button(string.valueof(i)); centerpanel.add(btn [i]); btn [i] .addactionlistener(nl); if(i%2 == 1){centerpanel.add(btn [(i+19)/2]); btn [(i+19)/2] .addactionlistener(ol); }} f.add(centerpanel、borderlayout.center);パネルnorthpanel = new Panel(); tf.setedable(false); northpanel.add(tf); f.add(Northpanel、borderlayout.north); } public void go(){f.pack(); f.setVisible(true); } public static void main(string [] args){new MyCalculator()。go(); } /***内部クラスメソッドを使用してリスナーインターフェイスを実装して、クラス内のメインクラスの内部メンバーへのアクセスを容易にします。 *このクラスは、番号ボタンのアクションイベントのリスニングと処理を担当します*/ class numberlistenerはactionlistener {public void actionperformed(actionevent e){if(!append){tf.settext( ""); append = true; } string s = tf.getText(); s+= e.getActionCommand(); tf.settext(s); if(!btn [10] .isEnabled()){for(int i = 10; i <= 14; i ++)btn [i] .setEnabled(true); }}} / ***メンバー内部クラス、オペレーターボタンのイベント処理を担当* / class operatorListenerはactionlistener {public void actionperformed(actionevent e){if(!append)return; for(int i = 10; i <= 14; i ++)btn [i] .setEnabled(false);文字列s = tf.getText(); long num = long.parselong(s); // textfieldの数を取得しますappend = false; // append switch(operator){case '+':result+= num; break;ケース ' - ':result- = num; break;ケース '*':result*= num; break; case '/':{if(num == 0)result = 0; else result/= num;壊す; } case '=':result = num; break; } tf.settext(string.valueof(result)); //結果の値をtextfield string op = e.getActionCommand()に設定します。 operator = op.Charat(0); //オペレーターを設定}}}方法3:
パッケージwanwa; import java.util。*; public class calc {public static void main(string [] args){scanner input = new scanner(system.in); system.out.println( "*******************************"); System.out.out.println( "使用方法:1。追加2。減算3。乗算4。分割*"); out.println("*/t/t/t/t/t/t/t*"); system.out.println(" ****************************************************************************************** i = 0; i <100; i ++){system.out.print( "/nplease操作ルールを選択します:"); int num = input.nextint(); switch(num){case 1:system.out.println( "/n ******追加を選択しました*******/n"); system.out.print( "最初の加算器を入力してください:"); int jiashu1 = input.nextint(); system.out.print( " " + jiashu1 +" + " + jiashu1 +" = " +(jiashu1 + jiashu2)); break; case 2:system.out.println("/n ******あなたは減算を選択しました*******/n "); system.out.print("を入力してください: "); int jianshu1 = int jianshu1 = int jianshu1 = input.nextint(); system.out.print( "suptraction:"); int jianshu2 = intextint(); system.out.println( "操作結果は:" + jianshu1 + " - " + jianshu2 + "=" +(jianshu1 -jianshu2));乗算*******/n "); system.out.print("最初の要因を入力してください: "); int chengfa1 = intext.nextint(); system.out.print("を入力してください: "); int chengfa2 = intextint.nextint(); system.out.println("操作結果: " + chengfa1 +" + " (chengfa1*chengfa2)); break; case 4:system.out.println( "/n ******あなたはディビジョンを選択しました*******/n"); system.out.print( "divisorを入力してください:"); double chufa1 = input.nextint(); system.out.out. input.nextint(); system.out.println( "操作結果は:" + chufa1 + " /" + chufa2 + "=" +(chufa1 / chufa2) + "yu" +(chufa2));再選択! "); break;}}}}方法4:
パッケージwanwa; import java.awt。*; import java.awt.event。*; import javax.swing。*; public class calculatorはjframe {private container container; private gridbaglayoutレイアウト;プライベートグリッドバグカクストールの制約;プライベートjtextfieldディスプレイフィールド;結果; //計算結果を保存しますプライベートブールスタート; //それが数のパブリック計算機の始まりであるかどうかを決定します{super( "calculature"); container = getContentPane(); layout = new gridbaglayout(); container.setLayout(レイアウト); jtextfield(20); displayfield.sethorizontalAlignment(jtextfield.right); constraints.gridx = 0; constraints.gridy = 0; constraints.gridwidth = 4; constraints.gridheight = 1; constraints.fill = gridbagconstraints.both; constraints.weights.weight = 100; discrants.weights.setconstraints.weight = 100;制約); container.add(displayfield); actionlistener insert = new Insertaction(); actionListener command = new Commandaction(); // addbutton( "backspace"、0、1、2、1、insert); // addbutton( "ce"、 "ce"、2、1、1、1、insert); 0、2、1、1、挿入); addButton( "8"、1、2、1、1、挿入); addButton( "9"、2、2、1、1、insert); addButton( "/"、3、2、1、1、コマンド); addbutton( "4"、0、3、1、1、insert); 3、1、1、挿入); addButton( "*"、3、3、1、1、コマンド); addButton( "1"、0、4、1、1、insert); addButton( "2"、1、4、1、1、insert); addButton( "3"、2、4、1、1、insert); 0, 5, 1, 1, insert);// addButton("+/-", 1, 5, 1, 1, 1, 1, insert);// Only display the "-" sign, "+" has no practical value addButton(".", 2, 5, 1, 1, insert);addButton("+", 3, 5, 1, 1, command);addButton("=", 0, 6, 4, 1, command); this.SetSizable(false); setSize(180、200); setVisible(true);} private void addbutton(string label、int row、int column、int with、int height、actionlistenerリスナー){jbutton button = new jbutton(label); constraints.gridx = row; constraints.gridths.gridwidth = constraintss.gridwidth height; constraints.fill = gridbagconstraints.both; button.addactionlistener(リスナー); layout.setconstraints(button、constraints); container.add(button);} private class insertaction actionlistener {public void actionperformed(actionevent event){string input = event.getactioncommand(in is) {displayfield.settext( ""); start = false; if(input.equals( "+/-"))displayfield.settext(displayfield.getText()+" - ");} if(!input.equals( "+/-")){if(input.equals( "backspace")){string str = display.get.text.gettext.gettext.lengt(); displayfield.settext(str.substring(0、str.length() - 1));} else if(input.equals( "ce")|| input.equals( "c")){displayfield.settext( "0"); start = true;} elsedisplayfield.settext.settext(displayfield.getext() +入力} +入力); void actionperformed(actionevent evt){string command = evt.getActionCommand(); if(start){lastCommand = command; } else {calculate(double.parsedouble(displayfield.getText()); lastcommand = command; start = true; }}} public void calculate(double x){if(lastcommand.equals( " +"))result += x; else if(lastcommand.equals( " - ")result- x; else if(lastcommand.equals( " *")result *= x; els(lastcommand.equals( " /")rest /= x; x; displayfield.settext( "" + result);} public static void main(string [] args){calculature calculate = new calculator(); calculator.setDefaultCloseoperation(jframe.exit_on_close);}}}この記事がみんなのJavaプログラミングに役立つことを願っています。