Artikel ini merangkum metode umum untuk menulis kalkulator di Java. Bagikan untuk referensi Anda, sebagai berikut:
Metode 1:
Paket wanwa; impor java.awt.*; impor java.awt.event.*; impor javax.swing.*; kalkulator kelas publik memperluas jframe {wadah kontainer pribadi; save gridbaglayout private, angsa private,-rouling,-rouling,-tata pajuk privat,-pajangan privat; Hasil; // Simpan perhitungan Hasil start boolean pribadi; // Tentukan apakah itu awal dari angka kalkulator publik () {super ("kalkulator"); container = getContentPane (); tata letak = gridbaglayout baru; container.setlayout (tata letak); constrains = new gridbagconstructs (); start = tata letak = letak = letak = letak = letak = letak = letak = "tata letak =" new; " JTextField (20); DisplayField.sethorizontalAlignment (JTextField.Right); Constraints.gridx = 0; Constraints.gridy = 0; Constraints.gridwidth = 4; Constraints.gridheight = 1; Constraints.Fill = gridbagconstraints.both; bobots. Batas kelas = 100; constraints);container.add(displayField);ActionListener insert = new InsertAction();ActionListener command = new CommandAction();// addButton("Backspace", 0, 1, 2, 1, insert);// addButton("CE", 2, 1, 1, 1, insert);// addButton("C", 3, 1, 1, 1, insert);addButton("7", 0, 2, 1, 1, masukkan); addbutton ("8", 1, 2, 1, 1, masukkan); addbutton ("9", 2, 2, 1, 1, masukkan); addbutton ("/", 3, 2, 1, 1, command); addbutton ("4", 0, 3, 1, 1, masukkan); addbutton); addbutton ("4", 0, 3, 1, 1, masukkan); addbutton), addButton ("4", 0, 3, 1, 1, masukkan); addbutton), "" "", "1, 1, 0, 3, 1, 1, 1, masukkan); addbutton (" "," 1, 1, 0, 3, 1, 1, 1, 1, 1, masukkan); masukkan ("", " 1, 1, insert);addButton("*", 3, 3, 1, 1, command);addButton("1", 0, 4, 1, 1, insert);addButton("2", 1, 4, 1, 1, insert);addButton("3", 2, 4, 1, 1, insert);addButton("-", 3, 4, 1, 1, command);addButton("0", 0, 5, 1, 1, masukkan); // addbutton ("+/-", 1, 5, 1, 1, 1, 1, masukkan); // Hanya tampilkan "-" tanda, "+" tidak memiliki nilai praktis addbutton (".", 2, 5, 1, 1, masukkan); addbutton ("+", 3, 5, 1, 1, oDiF); ini. tinggi; kendala.fill = gridbagconstraints.both; tombol.addactionListener (pendengar); tata letak.setConstraints (tombol, kendala); container.add (tombol);} class private Insertaction mengimplementasikan ActionListener {public void ActionPerformed (actionEvent event) {string input = eventCerexter. = false; if (input.equals ("+/-")) displayField.setText (displayField.getText ()+"-");} if (! input.equals ("+/-")) {if (input.equals ("backspace")) {string string = displayFieldField.gettext (); if (if str.sets. str.length () - 1));} lain jika (input.equals ("ce") || input.equals ("c")) {displayField.setText ("0"); start = true;} elsedisplayfield commandable (displayfieldFform.geptext () + input);}}} evi Action {evoid {evoid {evoid {evoid () perintah = evt.getActionCommand (); if (start) {lastCommand = command; } else {calculate (double.parsedouble (displayfield.getText ())); lastCommand = perintah; mulai = true; }}} public void menghitung (double x) {if (lastCommand.equals (" +")) hasil += x; else if (lastCommand.equals (" -")) hasil -= x; lain jika (lastCommand.equals (" *") hasil *= x; lain if (lastcommand.equals ("") ("ifand (" ifand (lastcmand ("ifels." x; displayField.setText ("" + hasil);} public static void main (string [] args) {calculator calculate = new calculator (); calculator.setDefaultcloseOperation (jframe.exit_on_close);}}Metode 2:
impor java.awt.*; import java.awt.event.*; kelas publik mycalculator {bingkai pribadi f; Textfield pribadi TF = Textfield baru (30); hasil panjang pribadi; private boolean append = false; operator arang pribadi = '='; tombol pribadi [] btn = tombol baru [15]; public mycalculator () {initComponent (); } private void initComponent () {f = bingkai baru ("Kalkulator saya v1.0"); f.setLayout (borderlayout baru ()); // bingkai menggunakan borderlayout f.addwindowlistener (windowadapter baru () {public void windowclosing (windowevent evt) {system.exit (0);}}); Panel centerpanel = panel baru (); centerpanel.setlayout (GridLayout baru (5, 3)); // Panel menggunakan GridLayout NumberListener NL = new numberListener (); OperatorListener ol = OperatorListener baru (); btn [10] = tombol baru ("+"); btn [11] = tombol baru ("-"); btn [12] = tombol baru ("*"); btn [13] = tombol baru ("/"); btn [14] = tombol baru ("="); untuk (int i = 0; i <= 9; i ++) {btn [i] = tombol baru (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); Panel northpanel = panel baru (); tf.seteditable (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 (); } /***Gunakan metode kelas internal untuk mengimplementasikan antarmuka pendengar untuk memfasilitasi akses ke anggota internal kelas utama dalam kelas. *Kelas ini bertanggung jawab untuk mendengarkan dan menangani peristiwa tindakan dari tombol angka*/ kelas NumberListener mengimplementasikan 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); }}} / *** Kelas internal anggota, bertanggung jawab untuk penanganan acara tombol operator* / kelas operatorListener mengimplementasikan ActionListener {public void actionPerformed (actionEvent e) {if (! Append) return; untuk (int i = 10; i <= 14; i ++) btn [i] .setenabled (false); String s = tf.getText (); long num = long.parselong (s); // Dapatkan jumlah TextField append = false; // Setel append switch (operator) {case '+': result+= num; break; case '-': result- = num; break; case '*': hasil*= num; break; case '/': {if (num == 0) hasil = 0; Hasil lain/= num; merusak; } case '=': result = num; break; } tf.setText (string.ValueOf (hasil)); // Atur nilai hasil ke string textfield op = e.getactionCommand (); operator = op.charat (0); // Atur operator}}}Metode 3:
paket wanwa; import java.util.*; kelas publik calc {public static void main (string [] args) {scanner input = new Scanner (System.in); System.out.println ("****************************"); System.out.println ("*/t/t/t/t/t*"); System.out.println ("*Instruksi untuk digunakan: 1. Penambahan 2. Subtraksi 3. Divisi*"); System.out.println ("*/t/t/t/t/t/t*"); System.out.println (" ***************** " input.nextInt (); switch (num) {case 1: System.out.println ("/n ****** Anda telah memilih tambahan *******/n"); System.out.print ("Harap masukkan adder pertama:"); int jiashu1 = input.nextint (); System.print ("Harap masukkan adder kedua:"); intput. Hasil operasi adalah: " + jiashu1 +" + " + jiashu1 +" = " + (jiashu1 + jiashu2)); break; case 2: System.out.println ("/n ****** Anda telah memilih pengurangan *******/n "); System.out.print (" Harap masukkan subtraksi: " input.nextInt (); System.out.print ("Harap masukkan pengurangan:"); int jianshu2 = input.nextInt (); System.out.println ("Hasil operasinya adalah:" + Jianshu1 + " -" + Jianshu2 + "=" + (Jianshu1 - Jianshu2)); BURUK; perkalian yang dipilih *******/n "); System.out.print (" Harap masukkan faktor pertama: "); int chengfa1 = input.nextInt (); System.out.print (" Harap masukkan faktor kedua: "); int chengfa2 = input.nextint (); System.out.println (" Hasil Operasi adalah: "Operasi adalah:" Hasil Operasi: " (chengfa1*chengfa2)); break; case 4: System.out.println ("/n ****** Anda memilih divisi *******/n"); System.out.print ("Harap masukkan pembagi:"); double chufa1 = input.nextInt (); System.out.print ("Harap masukkan The Double Chufa1 = input.nextInt (); System.out.out.print (" PLEASE THE SHASE ("PLANTE CHUFA1 = Input.nextint (); System.out.print (" PLEASE THE THE SHARE (" input.nextInt (); System.out.println ("Hasil operasinya adalah:" + chufa1 + " /" + chufa2 + "=" + (chufa1 / chufa2) + "yu" + (chufa1 % chufa2); break; default: System.out.println ("oBREUR}}}}}}}}}}}}}}}}} o.Metode 4:
Paket wanwa; impor java.awt.*; impor java.awt.event.*; impor javax.swing.*; kalkulator kelas publik memperluas jframe {wadah kontainer pribadi; save gridbaglayout private, angsa private,-rouling,-rouling,-tata pajuk privat,-pajangan privat; Hasil; // Simpan perhitungan Hasil start boolean pribadi; // Tentukan apakah itu awal dari angka kalkulator publik () {super ("kalkulator"); container = getContentPane (); tata letak = gridbaglayout baru; container.setlayout (tata letak); constrains = new gridbagconstructs (); start = tata letak = letak = letak = letak = letak = letak = letak = "tata letak =" new; " JTextField (20); DisplayField.sethorizontalAlignment (JTextField.Right); Constraints.gridx = 0; Constraints.gridy = 0; Constraints.gridwidth = 4; Constraints.gridheight = 1; Constraints.Fill = gridbagconstraints.both; bobots. Batas kelas = 100; constraints);container.add(displayField);ActionListener insert = new InsertAction();ActionListener command = new CommandAction();// addButton("Backspace", 0, 1, 2, 1, insert);// addButton("CE", 2, 1, 1, 1, insert);// addButton("C", 3, 1, 1, 1, insert);addButton("7", 0, 2, 1, 1, masukkan); addbutton ("8", 1, 2, 1, 1, masukkan); addbutton ("9", 2, 2, 1, 1, masukkan); addbutton ("/", 3, 2, 1, 1, command); addbutton ("4", 0, 3, 1, 1, masukkan); addbutton); addbutton ("4", 0, 3, 1, 1, masukkan); addbutton), addButton ("4", 0, 3, 1, 1, masukkan); addbutton), "" "", "1, 1, 0, 3, 1, 1, 1, masukkan); addbutton (" "," 1, 1, 0, 3, 1, 1, 1, 1, 1, masukkan); masukkan ("", " 1, 1, insert);addButton("*", 3, 3, 1, 1, command);addButton("1", 0, 4, 1, 1, insert);addButton("2", 1, 4, 1, 1, insert);addButton("3", 2, 4, 1, 1, insert);addButton("-", 3, 4, 1, 1, command);addButton("0", 0, 5, 1, 1, masukkan); // addbutton ("+/-", 1, 5, 1, 1, 1, 1, masukkan); // Hanya tampilkan "-" tanda, "+" tidak memiliki nilai praktis addbutton (".", 2, 5, 1, 1, masukkan); addbutton ("+", 3, 5, 1, 1, oDiF); ini. tinggi; kendala.fill = gridbagconstraints.both; tombol.addactionListener (pendengar); tata letak.setConstraints (tombol, kendala); container.add (tombol);} class private Insertaction mengimplementasikan ActionListener {public void ActionPerformed (actionEvent event) {string input = eventCerexter. = false; if (input.equals ("+/-")) displayField.setText (displayField.getText ()+"-");} if (! input.equals ("+/-")) {if (input.equals ("backspace")) {string string = displayFieldField.gettext (); if (ifor,) {string string = displayfieldfield.gettext (); str.length () - 1));} lain jika (input.equals ("ce") || input.equals ("c")) {displayField.setText ("0"); start = true;} elsedisplayfield commandable (displayfieldFform.geptext () + input);}}} evi Action {evoid {evoid {evoid {evoid () perintah = evt.getActionCommand (); if (start) {lastCommand = command; } else {calculate (double.parsedouble (displayfield.getText ())); lastCommand = perintah; mulai = true; }}} public void menghitung (double x) {if (lastCommand.equals (" +")) hasil += x; else if (lastCommand.equals (" -")) hasil -= x; lain jika (lastCommand.equals (" *") hasil *= x; lain if (lastcommand.equals ("") ("ifand (" ifand (lastcommand ("ifels (" ifels (lastcommand ("")) x; displayField.setText ("" + hasil);} public static void main (string [] args) {calculator calculate = new calculator (); calculator.setDefaultcloseOperation (jframe.exit_on_close);}}Saya harap artikel ini akan membantu pemrograman Java semua orang.