@@ -51,7 +51,7 @@ public class UI implements ActionListener {
5151 private final JTextArea text ;
5252
5353 private final JButton but [], butAdd , butMinus , butMultiply , butDivide ,
54- butEqual , butCancel , butSquareRoot , butSquare , butOneDividedBy ,
54+ butEqual , butCancel , butSquareRoot , butSquare , butOneDividedBy ,butFactorial ,
5555 butCos , butSin , butTan , butxpowerofy , butlog , butrate , butabs , butBinary , butln ;
5656 private final Calculator calc ;
5757
@@ -96,7 +96,8 @@ public UI() throws IOException {
9696 butMultiply = new JButton ("*" );
9797 butDivide = new JButton ("/" );
9898 butEqual = new JButton ("=" );
99- butSquareRoot = new JButton ("sqrt" );
99+ butSquareRoot = new JButton ("sqrt" );
100+ butFactorial = new JButton ("!" );
100101 butSquare = new JButton ("x*x" );
101102 butOneDividedBy = new JButton ("1/x" );
102103 butCos = new JButton ("Cos" );
@@ -134,6 +135,7 @@ public void init() {
134135 butEqual .setFont (font );
135136 butSquareRoot .setFont (font );
136137 butSquare .setFont (font );
138+ butFactorial .setFont (font );
137139 butOneDividedBy .setFont (font );
138140 butCos .setFont (font );
139141 butSin .setFont (font );
@@ -181,6 +183,7 @@ public void init() {
181183 panel .add (panelSub5 );
182184
183185 panelSub6 .add (butSquare );
186+ panelSub6 .add (butFactorial );
184187 panelSub6 .add (butSquareRoot );
185188 panelSub6 .add (butOneDividedBy );
186189 panelSub6 .add (butxpowerofy );
@@ -204,6 +207,7 @@ public void init() {
204207 butMinus .addActionListener (this );
205208 butMultiply .addActionListener (this );
206209 butDivide .addActionListener (this );
210+ butFactorial .addActionListener (this );
207211 butSquare .addActionListener (this );
208212 butSquareRoot .addActionListener (this );
209213 butOneDividedBy .addActionListener (this );
@@ -268,6 +272,10 @@ public void actionPerformed(ActionEvent e) {
268272 writer (calc .calculateBi (Calculator .BiOperatorModes .xpowerofy , reader ()));
269273 }
270274
275+ if (source == butFactorial ) {
276+ writer (calc .calculateMono (Calculator .MonoOperatorModes .factorial , reader ()));
277+ }
278+
271279 if (source == butSquare ) {
272280 writer (calc .calculateMono (Calculator .MonoOperatorModes .square , reader ()));
273281 }
0 commit comments