Scientific Calculator Using Java , swing and awt with source code

Scientific Calculator using java

Introduction :

The Scientific Calculator is a Java-based desktop application designed to handle a wide range of mathematical operations, including basic arithmetic and advanced functions like trigonometry, logarithms, and square roots. This Calculator help you to calculate science, engineering and mathematical problems etc. This software aims to provide users with a useful and efficient tool for performing calculations .  It features a simple, user-friendly interface, supports error handling, and ensures precise results. The project is ideal for students, professionals, or anyone who needs a practical, easy-to-use calculator.

Features:

  • Basic Arithmetic Operations: Handles  simple operations like addition, substraction , multiplication and division with accuracy.
  • Advanced Mathematical Functions: Supports advanced calculations including trigonometric functions (sine, cosine, tangent), logarithms, square roots, and more.
  • User-Friendly Interface: Provide a clean , easy to use interface.
  • Error Handling: Provides real-time feedback for invalid inputs, such as division by zero or incorrect formulas.
  • Precision: Delivers accurate results, ideal for scientific calculations and complex mathematical problems.
  • Customizable: Can be easily modified as  per the funtions needed.

Required Packages :

This Java project utilizes the following modules and packages:

  1. java.awt:  Provides classes necessary to create an applet of system  (GUI) using AWT.

  2. javax.swing:  It is a GUI widget toolkit Used for creating GUI components like buttons, labels,frames and other GUI component.

  3. java.awt.event: Handles user interactions such as button clicks and other events.

  4. java.math: Offers classes like BigDecimal , SmallDecimal, power etc for precise mathematical operations, used in this program for handling factorial calculations.

  5. java.text: Provides classes for formatting and parsing numbers, text, and other useful data , used here for displaying large factorial results in a readable format.

How to Run the Code:

To run the Calculator.java code, follow these steps:


Prerequisites

  1. Java Development Kit (JDK): Ensure the JDK is installed on your system.

    • To check, open a terminal/command prompt and run:
      java -version
      

      If it’s not installed, download it from Oracle’s Java website or an open-source version like OpenJDK.

  2. Text Editor or IDE: Use a text editor (e.g., Notepad++) or an IDE (e.g., IntelliJ IDEA, Eclipse, or VS Code) to view and edit the code if needed.


Step 1: Write the  Java Program

Write the Provided Java Code in your code editor , name it as follows :

calculator.java

If there are no errors, this will generate a calculator.class file.

Step 2: Run the Program

Run main class 

java calculator

Step 3: Interact with the calculator

  • The calculator window will open.
  • start performing your operations.

How to Use the Calculator

  1. Use the GUI buttons to perform calculations:

    • Basic operations: Addition (+), subtraction (-), multiplication (*), division (/).
    • Advanced functions: Trigonometry (sin, cos, tan), logarithms (ln, log), factorial (x!), and more.
  2. View results in the text area at the top.


Code Explanation :


1. Imports

  • The program imports packages for GUI creation (java.awt, javax.swing), event handling (java.awt.event), and advanced math operations (java.math, java.text).

2. Class Declaration

  • The Calculator class:
    • Extends JFrame to create the main calculator window.
    • Implements ActionListener to respond to button clicks.

3. GUI Layout

  • Panels (JPanel[] row):

    • Used to group the display and buttons for better organization.
    • Row 0 is for the display, and rows 1–7 hold buttons.
  • Buttons (JButton[] button):

    • 35 buttons are dynamically created for numbers, operations, and functions.
    • Each button gets text from buttonString and is set to listen for click events via addActionListener.
  • Display (JTextArea display):

    • Shows input/output text.
    • Positioned at the top and set to be uneditable.

4. Constructor (Calculator())

  • Sets up the GUI window:
    • Defines size, layout (GridLayout), and look (NimbusLookAndFeel).
  • Dynamically initializes panels and buttons, then adds them to the window.

5. Helper Methods

  1. setDesign(): Applies a modern look to the GUI.
  2. clear(): Resets the display and variables.
  3. del(): Deletes the last digit or character in the display.
  4. getFactorial(): Computes factorial using BigInteger for large values.
  5. getResult(): Executes the selected operation and updates the display.

6. Event Handling

  • The actionPerformed method handles button clicks:
    • Unary Operations: sin, cos, tan, ln, etc., work on the current input.
    • Binary Operations: Addition, subtraction, multiplication, division, etc., store operands and await the second input.
    • Special Operations: Factorial (x!), reciprocal (1/x), and trigonometric functions are calculated immediately.
    • The equal button (=) calls getResult() to compute and display the final result.

7. Execution

  • Main Method:
    • Creates an instance of Calculator, which automatically initializes and displays the GUI.

Source Code:

				
					import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JLabel;
import java.awt.Font;
import java.awt.Color;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JSeparator;
import javax.swing.JRadioButton;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.ButtonGroup;
import javax.swing.JToggleButton;

import java.awt.BorderLayout;
import java.awt.Component;
import javax.swing.SwingConstants;

public class calculator {

	private JFrame frame;
	private JTextField textField;
	
	double first;
	double second;
	double result;
	String operation;
	String answer;
	private final ButtonGroup buttonGroup = new ButtonGroup();
	

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					calculator window = new calculator();
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public calculator() {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();
		frame.getContentPane().setFont(new Font("Tahoma", Font.BOLD, 20));
		frame.getContentPane().setLayout(null);
		
		JLabel lblNewLabel = new JLabel("SCIENTIFIC CALCULATOR");
		lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 22));
		lblNewLabel.setBounds(40, 10, 313, 57);
		frame.getContentPane().add(lblNewLabel);
		
		textField = new JTextField();
		textField.setEnabled(false);
		textField.setFont(new Font("Tahoma", Font.BOLD, 21));
		textField.setBounds(10, 77, 366, 89);
		frame.getContentPane().add(textField);
		textField.setColumns(10);
		
		JButton btnXy = new JButton("X^Y");
		btnXy.setEnabled(false);
		btnXy.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				first=Double.parseDouble(textField.getText());
				textField.setText("");
				operation="X^Y";
			}
		});
		btnXy.setFont(new Font("Tahoma", Font.PLAIN, 15));
		btnXy.setBounds(10, 298, 64, 37);
		frame.getContentPane().add(btnXy);
		
		JButton btnX = new JButton("X^3");
		btnX.setEnabled(false);
		btnX.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				double a =(Double.parseDouble(textField.getText()));
				a=a*a*a;
				textField.setText("");
				textField.setText(textField.getText()+a);
			}
		});
		btnX.setFont(new Font("Tahoma", Font.PLAIN, 15));
		btnX.setBounds(10, 343, 64, 37);
		frame.getContentPane().add(btnX);
		
		JButton bcc = new JButton("X^2");
		bcc.setEnabled(false);
		bcc.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				double a =(Double.parseDouble(textField.getText()));
				a=a*a;
				textField.setText("");
				textField.setText(textField.getText()+a);
			}
		
		});
		bcc.setFont(new Font("Tahoma", Font.PLAIN, 15));
		bcc.setBounds(10, 390, 64, 37);
		frame.getContentPane().add(bcc);
		
		JButton btt = new JButton("n!");
		btt.setEnabled(false);
		btt.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				double a=Double.parseDouble(textField.getText());
				double fact=1;
				while(a!=0)
				{
					fact=fact*a;
					a--;
				}
				textField.setText("");
				textField.setText(textField.getText()+fact);	
				
			}
		});
		btt.setFont(new Font("Tahoma", Font.PLAIN, 21));
		btt.setBounds(10, 437, 64, 37);
		frame.getContentPane().add(btt);
		
		JButton btnPlusMinus = new JButton("+/-");
		btnPlusMinus.setEnabled(false);
		btnPlusMinus.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				double a=Double.parseDouble(String.valueOf(textField.getText()));
				a=a*(-1);
				textField.setText(String.valueOf(a)); // String.valueOf gives integer value from string
			}
		});
		btnPlusMinus.setFont(new Font("Tahoma", Font.PLAIN, 19));
		btnPlusMinus.setBounds(10, 484, 64, 37);
		frame.getContentPane().add(btnPlusMinus);
		
		JButton btnEx = new JButton("e^x");
		btnEx.setEnabled(false);
		btnEx.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				double a =Math.exp(Double.parseDouble(textField.getText()));
				textField.setText("");
				textField.setText(textField.getText()+a);
			}
		});
		btnEx.setFont(new Font("Tahoma", Font.PLAIN, 15));
		btnEx.setBounds(84, 209, 64, 37);
		frame.getContentPane().add(btnEx);
		
		JButton btnLog = new JButton("Log");
		btnLog.setEnabled(false);
		btnLog.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				double a =Math.log(Double.parseDouble(textField.getText()));
				textField.setText("");
				textField.setText(textField.getText()+a);
			}
		});
		btnLog.setFont(new Font("Tahoma", Font.PLAIN, 17));
		btnLog.setBounds(84, 251, 64, 37);
		frame.getContentPane().add(btnLog);
		
		JButton btnPercent = new JButton("%");
		btnPercent.setEnabled(false);
		btnPercent.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				first=Double.parseDouble(textField.getText());
				textField.setText("");
				operation="%";          //holds the operation to be done
			}
		});
		btnPercent.setFont(new Font("Tahoma", Font.BOLD, 21));
		btnPercent.setBounds(84, 298, 64, 37);
		frame.getContentPane().add(btnPercent);
		
		JButton btn7 = new JButton("7");
		btn7.setEnabled(false);
		btn7.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String number=textField.getText()+btn7.getText();//to get the number from the user
				textField.setText(number);//setting text to next field
			}
		});
		btn7.setFont(new Font("Tahoma", Font.BOLD, 21));
		btn7.setBounds(84, 343, 64, 37);
		frame.getContentPane().add(btn7);
		
		JButton btn4 = new JButton("4");
		btn4.setEnabled(false);
		btn4.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String number=textField.getText()+btn4.getText();//to get the number from the user
				textField.setText(number);//setting text to next field
			}
		});
		btn4.setFont(new Font("Tahoma", Font.BOLD, 21));
		btn4.setBounds(84, 390, 64, 37);
		frame.getContentPane().add(btn4);
		
		JButton btn1 = new JButton("1");
		btn1.setEnabled(false);
		btn1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String number=textField.getText()+btn1.getText();//to get the number from the user
				textField.setText(number);//setting text to next field
			}
		});
		btn1.setFont(new Font("Tahoma", Font.BOLD, 21));
		btn1.setBounds(84, 437, 64, 37);
		frame.getContentPane().add(btn1);
		
		JButton btn0 = new JButton("0");
		btn0.setEnabled(false);
		btn0.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String number=textField.getText()+btt.getText();//to get the number from the user
				textField.setText(number);//setting text to next field
			}
		});
		btn0.setFont(new Font("Tahoma", Font.BOLD, 21));
		btn0.setBounds(84, 484, 138, 37);
		frame.getContentPane().add(btn0);
		
		JButton btnSin = new JButton("Sin");
		btnSin.setEnabled(false);
		btnSin.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				
				double a =Math.sin(Double.parseDouble(textField.getText()));
				textField.setText("");
				textField.setText(textField.getText()+a);
			}
		});
		btnSin.setFont(new Font("Tahoma", Font.PLAIN, 17));
		btnSin.setBounds(158, 209, 64, 37);
		frame.getContentPane().add(btnSin);
		
		JButton btnSinh = new JButton("Sinh");
		btnSinh.setEnabled(false);
		btnSinh.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				double a =Math.sinh(Double.parseDouble(textField.getText()));
				textField.setText("");
				textField.setText(textField.getText()+a);
			}
		});
		btnSinh.setFont(new Font("Tahoma", Font.PLAIN, 16));
		btnSinh.setBounds(158, 252, 64, 37);
		frame.getContentPane().add(btnSinh);
		
		JButton btnClear = new JButton("C");
		btnClear.setEnabled(false);
		btnClear.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				textField.setText(null);//we want our text field to be null when we select clear button
			}
		});
		btnClear.setFont(new Font("Tahoma", Font.BOLD, 21));
		btnClear.setBounds(158, 298, 64, 37);
		frame.getContentPane().add(btnClear);
		
		JButton btn8 = new JButton("8");
		btn8.setEnabled(false);
		btn8.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String number=textField.getText()+btn8.getText();//to get the number from the user
				textField.setText(number);//setting text to next field
			}
		});
		btn8.setFont(new Font("Tahoma", Font.BOLD, 21));
		btn8.setBounds(158, 343, 64, 37);
		frame.getContentPane().add(btn8);
		
		JButton btn5 = new JButton("5");
		btn5.setEnabled(false);
		btn5.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String number=textField.getText()+btn5.getText();//to get the number from the user
				textField.setText(number);//setting text to next field
			}
		});
		btn5.setFont(new Font("Tahoma", Font.BOLD, 21));
		btn5.setBounds(158, 390, 64, 37);
		frame.getContentPane().add(btn5);
		
		JButton btn2 = new JButton("2");
		btn2.setEnabled(false);
		btn2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String number=textField.getText()+btn2.getText();//to get the number from the user
				textField.setText(number);//setting text to next field
			}
		});
		btn2.setFont(new Font("Tahoma", Font.BOLD, 21));
		btn2.setBounds(158, 437, 64, 37);
		frame.getContentPane().add(btn2);
		
		JButton btnCos = new JButton("Cos");
		btnCos.setEnabled(false);
		btnCos.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				double a =Math.cos(Double.parseDouble(textField.getText()));
				textField.setText("");
				textField.setText(textField.getText()+a);
			}
		});
		btnCos.setFont(new Font("Tahoma", Font.PLAIN, 17));
		btnCos.setBounds(232, 209, 64, 37);
		frame.getContentPane().add(btnCos);
		
		JButton btnCosh = new JButton("Cosh");
		btnCosh.setEnabled(false);
		btnCosh.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				double a =Math.cosh(Double.parseDouble(textField.getText()));
				textField.setText("");
				textField.setText(textField.getText()+a);
			}
		});
		btnCosh.setFont(new Font("Tahoma", Font.PLAIN, 14));
		btnCosh.setBounds(232, 252, 64, 37);
		frame.getContentPane().add(btnCosh);
		
		JButton btnBackSpace = new JButton("\uF0E7");
		btnBackSpace.setEnabled(false);
		btnBackSpace.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String backSpace=null;
				
				if(textField.getText().length()>0)  //checking if length of input string is >than 0
				{
					StringBuilder str= new StringBuilder(textField.getText());
					str.deleteCharAt(textField.getText().length()-1);    //reducing string size by 1
					backSpace=str.toString();                            //display new string to text field
					textField.setText(backSpace);                        //change B to backspace symbol
					
				}
			}
		});
		btnBackSpace.setFont(new Font("Wingdings", Font.PLAIN, 21));
		btnBackSpace.setBounds(232, 298, 64, 37);
		frame.getContentPane().add(btnBackSpace);
		
		JButton btn9 = new JButton("9");
		btn9.setEnabled(false);
		btn9.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String number=textField.getText()+btn9.getText();//to get the number from the user
				textField.setText(number);//setting text to next field
			}
		});
		btn9.setFont(new Font("Tahoma", Font.BOLD, 21));
		btn9.setBounds(232, 343, 64, 37);
		frame.getContentPane().add(btn9);
		
		JButton btn6 = new JButton("6");
		btn6.setEnabled(false);
		btn6.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String number=textField.getText()+btn6.getText();//to get the number from the user
				textField.setText(number);//setting text to next field
			}
		});
		btn6.setFont(new Font("Tahoma", Font.BOLD, 21));
		btn6.setBounds(232, 390, 64, 37);
		frame.getContentPane().add(btn6);
		
		JButton btn3 = new JButton("3");
		btn3.setEnabled(false);
		btn3.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String number=textField.getText()+btn3.getText();//to get the number from the user
				textField.setText(number);//setting text to next field
			}
		});
		btn3.setFont(new Font("Tahoma", Font.BOLD, 21));
		btn3.setBounds(232, 437, 64, 37);
		frame.getContentPane().add(btn3);
		
		JButton btndot = new JButton(".");
		btndot.setEnabled(false);
		btndot.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String number=textField.getText()+btndot.getText();//to get the number from the user
				textField.setText(number);//setting text to next field
			}
		});
		btndot.setFont(new Font("Tahoma", Font.BOLD, 24));
		btndot.setBounds(232, 484, 64, 37);
		frame.getContentPane().add(btndot);
		
		JButton btnTan = new JButton("Tan");
		btnTan.setEnabled(false);
		btnTan.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				double a =Math.tan(Double.parseDouble(textField.getText()));
				textField.setText("");
				textField.setText(textField.getText()+a);
			}
		});
		btnTan.setFont(new Font("Tahoma", Font.PLAIN, 17));
		btnTan.setBounds(306, 209, 64, 37);
		frame.getContentPane().add(btnTan);
		
		JButton btnTanh = new JButton("Tanh");
		btnTanh.setEnabled(false);
		btnTanh.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				double a =Math.tanh(Double.parseDouble(textField.getText()));
				textField.setText("");
				textField.setText(textField.getText()+a);
			}
		});
		btnTanh.setFont(new Font("Tahoma", Font.PLAIN, 13));
		btnTanh.setBounds(306, 252, 64, 37);
		frame.getContentPane().add(btnTanh);
		
		JButton btnAdd = new JButton("+");
		btnAdd.setEnabled(false);
		btnAdd.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				first=Double.parseDouble(textField.getText());
				textField.setText("");
				operation="+";              //holds operation to be done
			
			}
		});
		btnAdd.setFont(new Font("Tahoma", Font.BOLD, 21));
		btnAdd.setBounds(306, 298, 64, 37);
		frame.getContentPane().add(btnAdd);
		
		JButton btnSub = new JButton("-");
		btnSub.setEnabled(false);
		btnSub.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			first=Double.parseDouble(textField.getText());
			textField.setText("");
			operation="-";                //holds operation to be done
			}
		});
		btnSub.setFont(new Font("Tahoma", Font.BOLD, 21));
		btnSub.setBounds(306, 343, 64, 37);
		frame.getContentPane().add(btnSub);
		
		JButton btnDivide = new JButton("/");
		btnDivide.setEnabled(false);
		btnDivide.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				first=Double.parseDouble(textField.getText());
				textField.setText("");
				operation="/";            //holds operation to be done
			}
		});
		btnDivide.setFont(new Font("Tahoma", Font.BOLD, 21));
		btnDivide.setBounds(306, 437, 64, 37);
		frame.getContentPane().add(btnDivide);
		
		JButton btnequal = new JButton("=");
		btnequal.setEnabled(false);
		btnequal.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				second=Double.parseDouble(textField.getText());
				if(operation=="+")
				{
					result=first+second;
					answer=String.format("%.2f", result);  //converting string storing result into answer
					textField.setText(answer);
				}
				else if(operation=="-")
				{
					result=first-second;
					answer=String.format("%.2f", result);   //converting string storing result into answer
					textField.setText(answer);
				}
				else if(operation=="*")
				{
					result=first*second;
					answer=String.format("%.2f", result);
					textField.setText(answer);
				}
				else if(operation=="/")
				{
					result=first/second;
					answer=String.format("%.2f", result);
					textField.setText(answer);
				}
				else if(operation=="%")
				{
					result=first%second;
					answer=String.format("%.2f", result);
					textField.setText(answer);
				}
				else if(operation=="X^Y")
				{
					double resultt=1;
					for(int i=0;i<second;i++)
					{
					resultt=first*resultt;
					}
					
					answer=String.format("%.2f", resultt);
					textField.setText(answer);
				
				}
			}
			});
		btnequal.setFont(new Font("Tahoma", Font.BOLD, 21));
		btnequal.setBounds(306, 484, 64, 37);
		frame.getContentPane().add(btnequal);
		
		JButton btnMul = new JButton("*");
		btnMul.setEnabled(false);
		btnMul.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				first=Double.parseDouble(textField.getText());
				textField.setText("");
				operation="*";                     //holds operation to be done
			}
		});
		btnMul.setFont(new Font("Tahoma", Font.BOLD, 21));
		btnMul.setBounds(306, 390, 64, 37);
		frame.getContentPane().add(btnMul);
		
		JButton btnRoot= new JButton("\u221A");
		btnRoot.setEnabled(false);
		btnRoot.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				double a =Math.sqrt(Double.parseDouble(textField.getText()));
				textField.setText("");
				textField.setText(textField.getText()+a);
			}
		});
		btnRoot.setFont(new Font("Tahoma", Font.PLAIN, 17));
		btnRoot.setBounds(10, 209, 64, 37);
		frame.getContentPane().add(btnRoot);
		
		JButton btn1byx = new JButton("1/x");
		btn1byx.setEnabled(false);
		btn1byx.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				double a =1/(Double.parseDouble(textField.getText()));
				textField.setText("");
				textField.setText(textField.getText()+a);
			}
		});
		btn1byx.setFont(new Font("Tahoma", Font.PLAIN, 17));
		btn1byx.setBounds(10, 251, 64, 37);
		frame.getContentPane().add(btn1byx);
		frame.setBounds(100, 100, 401, 580);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		JRadioButton rdbtnNewRadioButton = new JRadioButton("ON");
		rdbtnNewRadioButton.addActionListener(new ActionListener() {
			@SuppressWarnings("null")
			public void actionPerformed(ActionEvent e) {
				btn1.setEnabled(true);
				btn2.setEnabled(true);
				btn3.setEnabled(true);
				btn4.setEnabled(true);
				btn5.setEnabled(true);
				btn6.setEnabled(true);
				btn7.setEnabled(true);
				btn8.setEnabled(true);
				btn9.setEnabled(true);
				btn0.setEnabled(true);
				
				btndot.setEnabled(true);
				btnAdd.setEnabled(true);
				btnSub.setEnabled(true);
				btnMul.setEnabled(true);
				btnDivide.setEnabled(true);
				btnequal.setEnabled(true);
				btnPercent.setEnabled(true);
				
				btnSin.setEnabled(true);
				btnSinh.setEnabled(true);
				btnCos.setEnabled(true);
				btnCosh.setEnabled(true);
				btnTan.setEnabled(true);
				btnTanh.setEnabled(true);
				
				btnBackSpace.setEnabled(true);
				btnClear.setEnabled(true);
				btnXy.setEnabled(true);
				btnX.setEnabled(true);
				btnEx.setEnabled(true);
				btnLog.setEnabled(true);
				bcc.setEnabled(true);
				btt.setEnabled(true);
				btnPlusMinus.setEnabled(true);
					
				btnRoot.setEnabled(true);
				btn1byx.setEnabled(true);
				textField.setEnabled(true);

			}
		});
		buttonGroup.add(rdbtnNewRadioButton);
		rdbtnNewRadioButton.setFont(new Font("Tahoma", Font.BOLD, 17));
		rdbtnNewRadioButton.setBounds(6, 172, 57, 21);
		frame.getContentPane().add(rdbtnNewRadioButton);
		
		JRadioButton rdbtnOff = new JRadioButton("OFF");
		rdbtnOff.setSelected(true);
		rdbtnOff.addActionListener(new ActionListener() {
			@SuppressWarnings("null")
			public void actionPerformed(ActionEvent e) {
				btn1.setEnabled(false);
				btn2.setEnabled(false);
				btn3.setEnabled(false);
				btn4.setEnabled(false);
				btn5.setEnabled(false);
				btn6.setEnabled(false);
				btn7.setEnabled(false);
				btn8.setEnabled(false);
				btn9.setEnabled(false);
				btn0.setEnabled(false);
				
				btndot.setEnabled(false);
				btnAdd.setEnabled(false);
				btnSub.setEnabled(false);
				btnMul.setEnabled(false);
				btnDivide.setEnabled(false);
				btnequal.setEnabled(false);
				btnPercent.setEnabled(false);
				
				btnSin.setEnabled(false);
				btnSinh.setEnabled(false);
				btnCos.setEnabled(false);
				btnCosh.setEnabled(false);
				btnTan.setEnabled(false);
				btnTanh.setEnabled(false);
				
				btnBackSpace.setEnabled(false);
				btnClear.setEnabled(false);
				btnXy.setEnabled(false);
				btnX.setEnabled(false);
				btnEx.setEnabled(false);
				btnLog.setEnabled(false);
				bcc.setEnabled(false);
				btt.setEnabled(false);
				btnPlusMinus.setEnabled(false);
				
				btnRoot.setEnabled(false);
				btn1byx.setEnabled(false);
				textField.setEnabled(false);
				
			}
		});
		buttonGroup.add(rdbtnOff);
		rdbtnOff.setFont(new Font("Tahoma", Font.BOLD, 16));
		rdbtnOff.setBounds(68, 172, 57, 21);
		frame.getContentPane().add(rdbtnOff);
		
		
	}
}console.log( 'Code is Poetry' );
				
			

Output :

output
output