Artikel ini menjelaskan fungsi kalkulator yang diimplementasikan oleh Java. Bagikan untuk referensi Anda, sebagai berikut:
Paket awtdemo; impor java.awt.borderlayout; impor java.awt.color; impor java.awt.gridlayout; impor java.awt.event.actionevent; impor java.awt.event.actickener; impor javax.swing.jbutton; impor javax. javax.swing.jtextfield; @suppresswarnings ("serial") Kalkulator kelas publik memperluas jFrame mengimplementasikan ActionListener {private final string [] keys = {"7", "8", "9", "", "" "," 2, "2," 5 "," 6 "," "" "" "" "," 2, "2," 5, "5", "6", "" "" "" "" "2," 2, "2," 2, "5", "6", "" "" "" "" "" 2, "2," 2, "2," 2, "5", "6", "" "" " "0", "+/-", ".", "+", "="}; private final string [] command = {"backspace", "ce", "c"}; Private JButton Keys [] = JButton baru [Keys.length]; private jbutton commands [] = new jbutton [command.length]; private JTextField resultText = new jTextField ("0"); private boolean firstdigit = true; Hasil ganda pribadi = 0,0; operator string pribadi = "="; Operator Boolean Privat = true; Public Calculator () {init (); this.setBackground (color.light_gray); this.settitle ("www.vevb.com - calculator"); this.setlocation (500, 300); this.setresizable (false); this.pack (); } private void init () {resultText.sethorizontalAlignment (jTextField.Right); resultText.seteditable (false); resultText.setBackground (color.white); Jpanel calckeyspanel = jpanel baru (); calckeyspanel.setlayout (GridLayout baru (4, 5, 3, 3)); untuk (int i = 0; i <keys.length; i ++) {keys [i] = new jbutton (keys [i]); calckeyspanel.add (keys [i]); kunci [i] .setForeground (Color.Blue); } tombol [3] .setForeground (color.red); kunci [8] .setForeground (Color.Red); kunci [13] .setForeground (Color.Red); Keys [18] .setForeground (Color.Red); Keys [19] .setForeground (Color.Red); Jpanel commandspanel = new jpanel (); CommandSpanel.setLayout (GridLayout baru (1, 3, 3, 3)); untuk (int i = 0; i <command.length; i ++) {commands [i] = new jbutton (command [i]); commandspanel.add (perintah [i]); perintah [i] .setForeground (color.red); } Jpanel panel1 = jpanel baru (); Panel1.setLayout (BorderLayout baru (3, 3)); panel1.add ("utara", commandspanel); Panel1.add ("Barat", Calckeyspanel); Jpanel top = jpanel baru (); top.setLayout (borderlayout baru ()); top.add ("center", resultText); getContentPane (). SetLayout (BorderLayout baru (3, 5)); getContentPane (). Tambah ("utara", atas); getContentPane (). Add ("Center", Panel1); untuk (int i = 0; i <keys.length; i ++) {keys [i] .addactionListener (ini); } untuk (int i = 0; i <command.length; i ++) {commands [i] .addactionListener (ini); }} public void actionPerformed (actionEvent e) {string label = e.getactionCommand (); if (label.equals (perintah [0])) {candackspace (); } else if (label.equals (perintah [1])) {resultText.setText ("0"); } else if (label.equals (perintah [2])) {handlec (); } else if ("0123456789.". IndexOf (label)> = 0) {handlenumber (label); } else {handleOperator (label); }} private void candebackspace () {string text = resultText.getText (); int i = text.length (); if (i> 0) {text = text.substring (0, i - 1); if (text.length () == 0) {resultText.setText ("0"); firstDigit = true; operator = "="; } else {resultText.setText (teks); }}} private void handLeNumber (tombol string) {if (firstDigit) {resultText.setText (key); } else if ((key.equals (".")) && (resultText.getText (). indexOf (".") <0)) {resultText.setText (resultText.getText () + "."); } else if (! key.equals (".")) {resultText.setText (resultText.getText () + key); } firstdigit = false; } private void handlec () {resultText.setText ("0"); firstDigit = true; operator = "="; } private void handleOperator (tombol string) {if (operator.equals ("/")) {if (getNumberFromText () == 0.0) {operatorValidflag = false; resultText.setText ("Perceraian tidak bisa nol"); } else {resultNum /= getNumberFromText (); }} lain if (operator.equals ("1/x")) {if (resultNum == 0.0) {operatorValidflag = false; resultText.setText ("Zero tidak memiliki timbal balik"); } else {resultNum = 1 / resultNum; }} lain if (operator.equals (" +")) {resultNum += getNumberFromText (); } else if (operator.equals (" -")) {resultNum -= getNumberFromText (); } else if (operator.equals (" *")) {resultNum *= getNumberFromText (); } else if (operator.equals (" *")) {resultNum *= getNumberFromText (); } else if (operator.equals (" *")) {resultNum *= getNumberFromText (); } else if (operator.equals (" *")) {resultNum *= getNumberFromText (); } else if (operator.equals ("sqrt")) {resultNum = math.sqrt (resultNum); } lain jika (operator.equals ("%")) {resultNum = resultNum / 100; } else if (operator.equals ("+/-")) {resultNum = resultNum * (-1); } else if (operator.equals ("=")) {resultNum = getNumberFromText (); } if (operateValidFlag) {long t1; T2 ganda; t1 = (panjang) resultNum; t2 = resultNum - t1; if (t2 == 0) {resultText.setText (string.valueof (t1)); } else {resultText.setText (string.valueof (resultNum)); }} operator = key; firstDigit = true; operateValidFlag = true; } private double getNumberFromText () {ganda hasil = 0; coba {result = double.valueof (resultText.getText ()). DoubleValue (); } catch (NumberFormateException e) {} hasil pengembalian; } public static void main (string args []) {calculator calculate1 = new calculator (); Hitung1.setVisible (true); Calculate1.setDefaultCloseOperation (jframe.exit_on_close); }}Efek Menjalankan:
PS: Berikut adalah beberapa alat perhitungan untuk Anda rujuk ke:
Alat Perhitungan Solusi Online Unary Function (EQ):
http://tools.vevb.com/jisuanqi/equ_jisuanqi
Kalkulator ilmiah online use_advanced kalkulator online kalkulator:
http://tools.vevb.com/jisuanqi/jsqkeexue
Kalkulator Calculator_Standard Online:
http://tools.vevb.com/jisuanqi/jsq
Untuk informasi lebih lanjut tentang algoritma java, pembaca yang tertarik dengan situs ini dapat melihat topik: "struktur data java dan tutorial algoritma", "ringkasan tips node dom java", "ringkasan file operasi java dan direktori" dan "ringkasan tip operasi java cache" tips java "tips java" Tips "Java Cache Tips"
Saya harap artikel ini akan membantu pemrograman Java semua orang.