к це вимагає ActionListener
{
String command = event. getActionCommand (); ();// створимо змінну, що зберігає введену команду (getActionCommand () - метод за допомогою якого можна отримати значення натиснутою кнопки)
if (start)
{(command. equals ("-"))// якщо змінна command містить знак мінус
{display. setText (command);// присвоїмо змінної display значення змінної command = false;
} lastCommand = command;// інакше привласнимо змінної lastCommand значення змінної command
{if (! display. getText (). equals ("-"))// виконуємо метод calculate, якщо display. getText () не містить знак - (Double. parseDouble (display. getText ()));// інакше метод calculate проведе всі розрахунки; передаємо методу calculate дійсне значення, одержуване перетворенням рядка в число (Double. parseDouble) = command;// присвоїмо змінної lastCommand значення змінної command = true;
}
}
} void calculate (double x)// створимо (опишемо) метод calculate
{double y = Math. toRadians (x);// переводимо радіани в градуси
if (lastCommand. equals ("+")) result + = x;// if (lastCommand. equals ("-")) result-= x; if (lastCommand. equals ("*")) result * = x; if (lastCommand. equals ("/")) result/= x; if (lastCommand. equals ("X ^ 2")) result = Math. pow (x, 2); if (lastCommand. equals ("1/x")) result = 1/x; if (lastCommand. equals ("%")) result = x/100; if (lastCommand. equals ("X ^ 3")) result = Math. pow (x, 3); if (lastCommand. equals ("sqrt")) result = Math. sqrt (x); if (lastCommand. equals ("sin")) result = Math. sin (y); if (lastCommand. equals ("cos"))
{if (x == 90) result = 0; else = Math. cos (y);
} if (lastCommand. equals ("tan")) result = Math. tan (y); if (lastCommand. equals ("=")) result = x; if (lastCommand. equals ("ctg")) result = 1/(Math. tan (y)); if (lastCommand . equals ("Asin")) result = (180/Math. PI) * (Math. atan (x/Math. sqrt (1 - x * x))); if (lastCommand. equals ("Acos") ) = (180/Math. PI) * ((Math. PI/2 - (Math. atan (x/Math. sqrt (1 - x * x))))); if (lastCommand. equals ("Atan" )) result = (180/Math. PI) * (Math. atan (x)); if (lastCommand. equals ("LN")) result = Math. log (x); if (lastCommand. equals ("Log")) result = Math. log (x); if (lastCommand. equals ("10 ^ x"))
{double S = 1; (double u = 1; u <= x; u + +) = 10 * S; = S;
} if (lastCommand. equals ("Exp")) result = Math. exp (x); if (lastCommand. equals ("X ^ Any"))
{ss = JOptionPane. showInputDialog
("Виберете ступінь");
int ii = Integer. parseInt (ss);