В этой статье описываются функции калькулятора, реализованные Java. Поделитесь этим для вашей ссылки, следующим образом:
пакет awtdemo; import java.awt.borderlayout; import java.awt.color; import java.awt.gridlayout; импорт java.awt.event.actionevent; импорт java.awt.event.actionlistener; импорт javax.swing.jbutton; импорт javax.sswing. javax.swing.jtextfield; @suppresswarnings («серийный») Калькулятор открытого класса расширяет jframe реализует ActionListener {Private Final String [] keys = {7 "," 8 "," 9 ","/"," SQRT ", 4", "5", "6", ",", "%", "1", "3", ",", "1", ",", "1", "," 1 ",", "1", "," 1 ",", "1", "," 3 "," 5 ",", "/", "1", "3", "5", ",", "/", "1", "3", "5", "9", "/", "1", "3", "," 9 ","/"," 1 "," 3 ",", "9", "/", "1". " "0", "+/-", ".", "+", "="}; Private Final String [] command = {"Backspace", "ce", "c"}; частные ключи Jbutton [] = new jbutton [keys.length]; частные команды Jbutton [] = new jbutton [command.length]; private jtextfield resultText = new JTextField ("0"); Частный логический FirstDigit = true; Приватный двойной результат = 0,0; Private String Operator = "="; Частный логический оператор operatorvalidflag = true; public Calculator () {init (); this.setbackground (color.light_gray); this.settitle ("www.vevb.com - калькулятор"); this.SetLocation (500, 300); this.SetReSizable (false); this.pack (); } private void init () {resultText.sethorizontalAlignment (jtextfield.right); resultText.SetEdable (false); resultText.Setbackground (color.white); Jpanel calckeyspanel = new jpanel (); CalckeySpanel.SetLayout (New Gridlayout (4, 5, 3, 3)); for (int i = 0; i <keys.length; i ++) {keys [i] = new jbutton (keys [i]); Calckeyspanel.add (ключи [i]); Ключи [i] .setforeground (color.blue); } клавиши [3] .setforeground (color.red); Ключи [8] .setforeground (color.red); Ключи [13] .setforeground (color.red); Ключи [18] .setforeground (color.red); Ключи [19] .setforeground (color.red); JPanel CommandSpanel = new jPanel (); CommandSpanel.SetLayout (New Gridlayout (1, 3, 3, 3)); for (int i = 0; i <command.length; i ++) {commands [i] = new jbutton (command [i]); commandSpanel.add (commands [i]); Команды [i] .setforeground (color.red); } JPanel panel1 = new jPanel (); panel1.setlayout (new Borderlayout (3, 3)); panel1.add ("North", CommandSpanel); Panel1.Add («Запад», CalckeySpanel); Jpanel top = new jpanel (); top.setlayout (new Borderlayout ()); top.add («Центр», ResultText); getContentPane (). SetLayout (New BorderLayout (3, 5)); getContentPane (). Add ("North", Top); getContentPane (). Add ("Center", Panel1); for (int i = 0; i <keys.length; i ++) {keys [i] .addactionListener (это); } for (int i = 0; i <command.length; i ++) {commands [i] .addactionListener (this); }} public void actionperformed (actionEvent e) {String label = e.getActionCommand (); if (label.equals (command [0])) {handbackspace (); } else if (label.equals (command [1])) {resultText.settext ("0"); } else if (label.equals (command [2])) {handlec (); } else if ("0123456789.". Indexof (label)> = 0) {Handlenumber (label); } else {handleoperator (label); / 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 (text); }}} private void handlenumber (string key) {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 harderoperator (string key) {if (operator.equals ("/")) {if (getNumberFromText () == 0.0) {OperatorValIdflag = false; resultText.Settext («развод не может быть нулевым»); } else {resultnum /= getNumberFromText (); }} else if (operator.equals ("1/x")) {if (resultnum == 0.0) {operatorValIdflag = false; resultText.Settext ("Zero не имеет взаимного"); } else {resultnum = 1 / resultnum; }} 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 (" *")) {resultNum *= getNumberFromText (); } else if (operator.equals ("sqrt")) {resultnum = math.sqrt (resultnum); } else if (operator.equals ("%")) {resultnum = resultnum / 100; } else if (operator.equals ("+/-")) {resultnum = resultnum * (-1); } else if (operator.equals ("=")) {resultNum = getNumberFromText (); } if (OperateValidflag) {long t1; двойной T2; t1 = (длинный) 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 () {Double Result = 0; try {result = double.valueof (resultText.getText ()). DoubleValue (); } catch (numberFormateXception e) {} return Result; } public static void main (String args []) {Calculator Culdulate1 = new Calculator (); Рассчитайте1.SetVisible (true); Рассчитайте1.SetDefaultCloseoPeration (jframe.exit_on_close); }}Эффект бега:
PS: Вот несколько инструментов расчета для вас, чтобы ссылаться на:
Инструмент расчета решения для онлайн -функции (уравнение):
http://tools.vevb.com/jisuanqi/equ_jisuanqi
Научный калькулятор онлайн use_advanced Calculator Online Calculator:
http://tools.vevb.com/jisuanqi/jsqkeexue
Онлайн Calculator_standard Calculator:
http://tools.vevb.com/jisuanqi/jsq
Для получения дополнительной информации об алгоритмах Java, читатели, которые заинтересованы в этом сайте, могут просмотреть темы: «Учебное пособие по структуре данных Java и алгоритм», «Сводка операции Java Dom Node», «Сводка Java File и каталог
Я надеюсь, что эта статья будет полезна для всех Java Programming.