Introduction
In this article, we will design a CGPA Calculator App In Java. We can convert percentages of marks to CGPA and vice versa. There is also a help window to help users with the procedures- a simple yet helpful program.
Setting Up The Environment
Make sure JDK is installed in your system. If not, you can install it with the help of the IDE you are using.
We are using Eclipse IDE for the project. The first step in IDE is to create a project with your preferred name. Create a package named “cgpa” inside the project’s src folder. All the classes have to be created inside the package created earlier.
Coding CGPA Calculator App In Java
1. Main Module
File Name: “Main.java“
This contains the function. Calls the first page to be displayed.
package cgpa; public class Main { public static void main(String[] args) { Home home = new Home(); home.homeView(); } }
2. Home Page Module
File Name: “Home.java“
This module shows us the home page of the project. This is the first page opened when the project is started.
package cgpa; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class Home { public void homeView() { Commons commons = new Commons(); JFrame frame = commons.frames(); //-----------PERCENTTOCGPA------------------- JButton ptoc = new JButton("PERCENTAGE TO CGPA"); commons.bdes(ptoc, 175, 220); frame.add(ptoc); ptoc.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Conversions conv = new Conversions(); conv.conversionView(1); } }); //------------------------------------------- //-------------CGPATOPERCENT--------------------- JButton ctop = new JButton("CGPA TO PERCENTAGE"); commons.bdes(ctop, 175, 310); frame.add(ctop); ctop.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Conversions conv = new Conversions(); conv.conversionView(2); } }); //----------------------------------------------- //----------------HELP--------------------------- JButton help = new JButton("HELP"); commons.bdes(help, 175, 400); frame.add(help); help.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Help helpwindow = new Help(); helpwindow.helpView(); } }); //----------------------------------------------- frame.setVisible(true); } }
Here we have a logo, a closing button, and three buttons to operate. One to convert a percentage to CGPA, one to convert CGPA to a percentage, and the last one to display a help window.
3. Help window Module
File Name: “Help.java“
This module simply shows the help instruction to work with the software.
package cgpa; import java.awt.Font; import javax.swing.JFrame; import javax.swing.JLabel; public class Help { public void helpView() { Commons commons = new Commons(); JFrame frame= commons.frames(); Font txt = new Font("", Font.BOLD, 18); //----------------BACK-------------------- JLabel prev = commons.back(frame); frame.add(prev); //---------------------------------------- //-------------INSTRUCTIONS----------------- JLabel i1 = new JLabel("-> SELECT THE CGPA GRADING SCALE."); i1.setBounds(50, 230, 650, 20); i1.setFont(txt); frame.add(i1); JLabel i2 = new JLabel("-> ENTER THE NUMBER THAT YOU WANT TO CONVERT."); i2.setBounds(50, 280, 650, 20); i2.setFont(txt); frame.add(i2); JLabel i3 = new JLabel("-> PRESS CALCULATE."); i3.setBounds(50, 330, 650, 20); i3.setFont(txt); frame.add(i3); JLabel i4 = new JLabel("-> RESULT WILL BE OBTAINED."); i4.setBounds(50, 380, 650, 20); i4.setFont(txt); frame.add(i4); //------------------------------------------ frame.setVisible(true); } }
This module shows the help window.
4. Conversion Module
File Name: “Conversions.java“
This module of the CGPA Calculator App In Java helps us with conversions. Both the view and operation are done in this module.
package cgpa; import java.awt.Color; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; public class Conversions { int x = 0; public void conversionView(int i) { Commons commons = new Commons(); JFrame frame = commons.frames(); JButton b10 = new JButton("10.0"); JButton b5 = new JButton("5.0"); JButton b4 = new JButton("4.0"); //----------------BACK-------------------- JLabel prev = commons.back(frame); frame.add(prev); //---------------------------------------- //---------------LABEL------------------ JLabel grade = new JLabel("SELECT THE GRADING SCALE : "); grade.setBounds(30, 180, 300, 50); grade.setFont(new Font("", Font.BOLD, 15)); grade.setForeground(Color.decode("#949398")); frame.add(grade); //-------------------------------------- //----------------4------------------------ commons.bdes(b4, 0, 0); b4.setBounds(50, 230, 183, 40); frame.add(b4); b4.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { x=4; b4.setBackground(Color.decode("#763A12")); b5.setBackground(Color.decode("#949398")); b10.setBackground(Color.decode("#949398")); } }); //------------------------------------------ //----------------5------------------------ commons.bdes(b5, 0, 0); b5.setBounds(283, 230, 183, 40); frame.add(b5); b5.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { x=5; b5.setBackground(Color.decode("#763A12")); b4.setBackground(Color.decode("#949398")); b10.setBackground(Color.decode("#949398")); } }); //------------------------------------------ //----------------10------------------------ commons.bdes(b10, 0, 0); b10.setBounds(516, 230, 183, 40); frame.add(b10); b10.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { x=10; b10.setBackground(Color.decode("#763A12")); b4.setBackground(Color.decode("#949398")); b5.setBackground(Color.decode("#949398")); } }); //------------------------------------------ //-----------------INPUTLABEL------------------- JLabel enter = new JLabel("ENTER THE VALUE : "); enter.setBounds(30, 330, 200, 30); enter.setFont(new Font("", Font.BOLD, 15)); enter.setForeground(Color.decode("#949398")); frame.add(enter); JTextField value = new JTextField(); value.setBounds(50, 370, 183, 40); value.setBackground(Color.decode("#949398")); value.setForeground(Color.WHITE); value.setHorizontalAlignment(JLabel.CENTER); frame.add(value); //---------------------------------------------- //----------------------RESULT-------------------- JLabel result = new JLabel("RESULT : "); result.setBounds(496, 330, 200, 30); result.setFont(new Font("", Font.BOLD, 15)); result.setForeground(Color.decode("#949398")); frame.add(result); JTextField res = new JTextField(); res.setBounds(516, 370, 183, 40); res.setBackground(Color.decode("#949398")); res.setForeground(Color.WHITE); res.setFont(new Font("", Font.BOLD, 20)); res.setEditable(false); res.setHorizontalAlignment(JLabel.CENTER); frame.add(res); //------------------------------------------------- //----------------WARNING---------------------- JLabel warning = new JLabel(); warning.setBounds(0, 430, 750, 30); warning.setHorizontalAlignment(JLabel.CENTER); warning.setForeground(Color.RED); warning.setFont(new Font("", Font.BOLD, 15)); frame.add(warning); //--------------------------------------------- //---------------CALCULATE---------------------- JButton calc = new JButton("CALCULATE"); commons.bdes(calc, 175, 340); calc.setBounds(283, 370, 183, 40); frame.add(calc); calc.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { float resValue; if(x==0) warning.setText("Select a grading scale!!!"); else if(value.getText().equals("")) warning.setText("Enter Some Values!!!"); else { warning.setText(""); if(i==1) { if(Float.parseFloat(value.getText()) > 100 || Float.parseFloat(value.getText()) < 0) warning.setText("Value cannot be greater than 100% or less than 0%!!!"); else { resValue = x*(Float.parseFloat(value.getText())/100); res.setText(resValue+""); } } else { if(Float.parseFloat(value.getText()) > x || Float.parseFloat(value.getText()) < 0) warning.setText("Value cannot be greater than "+ x +" or less than 0!!!"); else { resValue = 100*(Float.parseFloat(value.getText())/x); res.setText(resValue+"%"); } } } } }); //---------------------------------------------- frame.setVisible(true); } }
This module here has the option to select the grading scale. After selecting the grading scale, Enter the value and press “CALCULATE” to get the result. The result will be shown in the result area.
5. Common Module
File Name: “Commons.java“
This module of the CGPA Calculator App In Java contains the function for the common frames, buttons, and labels in the project. This helps us in reducing the size of each module by avoiding the duplication of codes.
package cgpa; import java.awt.Color; import java.awt.Font; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; public class Commons { public JFrame frames() { JFrame frame = new JFrame(); frame.setSize(750, 500); frame.setLayout(null); frame.setResizable(false); frame.setLocationRelativeTo(null); frame.setUndecorated(true); frame.getContentPane().setBackground(Color.decode("#F4DF4E")); //---------------EXIT-------------------- JLabel exit = new JLabel("X"); exit.setBounds(710, 15, 25, 30); exit.setFont(new Font("", Font.BOLD, 25)); exit.setForeground(Color.decode("#949398")); frame.add(exit); exit.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { System.exit(0); } }); //---------------------------------------- //--------------LOGO---------------------- JLabel cgpa = new JLabel("CGPA"); cgpa.setBounds(0, 50, 750, 80); cgpa.setForeground(Color.decode("#949398")); cgpa.setFont(new Font("", Font.BOLD, 100)); cgpa.setHorizontalAlignment(JLabel.CENTER); frame.add(cgpa); JLabel calc = new JLabel("CALCULATOR"); calc.setBounds(0, 105, 750, 80); calc.setForeground(Color.decode("#949398")); calc.setFont(new Font("", Font.BOLD, 30)); calc.setHorizontalAlignment(JLabel.CENTER); frame.add(calc); //------------------------------------------ return frame; } //----------------BUTTON DESIGNS---------------------- public JButton bdes(JButton button, int x, int y) { button.setBackground(Color.decode("#949398")); button.setForeground(Color.WHITE); button.setBounds(x, y, 400, 50); button.setFocusable(false); return button; } //------------------------------------------------------ //-----------------BACK BUTTON--------------------------- public JLabel back(JFrame frame) { JLabel prev = new JLabel("< BACK"); prev.setBounds(25, 20, 90, 30); prev.setFont(new Font("", Font.BOLD, 25)); prev.setForeground(Color.decode("#949398")); prev.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { frame.dispose(); } }); return prev; } //-------------------------------------------------------- }
Output for CGPA Calculator In Java:
Thank you for reading CGPA Calculator App In Java and visiting our website.
Also Read:
- Dino Game in Java
- Java Games Code | Copy And Paste
- Supply Chain Management System in Java
- Survey Management System In Java
- Phone Book in Java
- Email Application in Java
- Inventory Management System Project in Java
- Blood Bank Management System Project in Java
- Electricity Bill Management System Project in Java
- CGPA Calculator App In Java
- Chat Application in Java
- 100+ Java Projects for Beginners 2023
- Airline Reservation System Project in Java
- Password and Notes Manager in Java
- GUI Number Guessing Game in Java
- How to create Notepad in Java?
- Memory Game in Java
- Simple Car Race Game in Java
- ATM program in Java
- Drawing Application In Java
- Tetris Game in Java
- Pong Game in Java
- Hospital Management System Project in Java
- Ludo Game in Java
- Restaurant Management System Project in Java
- Flappy Bird Game in Java
- ATM Simulator In Java
- Brick Breaker Game in Java
- Best Java Roadmap for Beginners 2023
- Snake Game in Java