Number Property Checker Using JFrame
Number Property Checker Using JFrame
12.Assignment Submission
Student Name: Praveen Biradar
ID: KODD8KS8I
Code : simple_Interest_Calculator.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public simple_Interest_Calculator() {
setTitle("SIMPLE INTEREST CALCULATOR");
setSize(500, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new GridBagLayout());
getContentPane().setBackground(new Color(44, 62, 80));
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(10, 10, 10, 10);
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.gridwidth = 1;
calculateButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
String name = nameField.getText();
double principal = Double.parseDouble(principalField.getText());
double time = Double.parseDouble(timeField.getText());
double simpleInterest = (principal * INTEREST_RATE * time) / 100;
resultLabel1.setText("1. Simple Interest: Rs. " +
String.format("%.2f", simpleInterest));
resultLabel2.setText("2. " + name + " has taken Rs. " + principal + "
amount for " + time +
" year(s) duration at an interest rate of " + INTEREST_RATE
+ "%.");
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(null, "Please enter valid inputs!",
"Error", JOptionPane.ERROR_MESSAGE);
}
}
});
}
Code Explanation
BusinessMan Class
package StaticElements;
import java.util.Scanner;
public class BusinessMan {
int principle;
int time;
static float rate = 6.0f;
float si;
void takeInput(Scanner scanner) {
System.out.println("Enter Principle:");
principle = scanner.nextInt();
System.out.println("Enter Time: ");
time = scanner.nextInt();
}
void calculateSI() {
si = (principle * time * rate) / 100;
}
void displaySI() {
System.out.println("SI is: " + si);
}
}
package StaticElements;
import java.util.Scanner;
public class SimpleInterest {
public static void main(String[] args) {
int numObjects = 30;
BusinessMan[] businessmen = new BusinessMan[numObjects];
Scanner scanner = new Scanner(System.in); // Scanner created once
for (int i = 0; i < numObjects; i++) {
businessmen[i] = new BusinessMan();
businessmen[i].takeInput(scanner); // Passing scanner to avoid closing it
businessmen[i].calculateSI();
businessmen[i].displaySI();
}
scanner.close(); // Close scanner after all inputs are taken
}
}
Output (Sample for 30 Objects) :
Enter Principle:
1000
Enter Time:
SI is: 60.0
Enter Principle:
2000
Enter Time:
SI is: 240.0
Enter Principle:
3000
Enter Time:
SI is: 540.0
Enter Principle:
4000
Enter Time:
SI is: 960.0
Enter Principle:
5000
Enter Time:
SI is: 1500.0
Enter Principle:
6000
Enter Time:
6
SI is: 2160.0
Enter Principle:
7000
Enter Time:
SI is: 2940.0
Enter Principle:
8000
Enter Time:
SI is: 3840.0
Enter Principle:
9000
Enter Time:
SI is: 4860.0
Enter Principle:
10000
Enter Time:
10
SI is: 6000.0
Enter Principle:
11000
Enter Time:
11
SI is: 7260.0
Enter Principle:
12000
Enter Time:
12
SI is: 8640.0
Enter Principle:
13000
Enter Time:
13
SI is: 10140.0
Enter Principle:
14000
Enter Time:
14
SI is: 11760.0
Enter Principle:
15000
Enter Time:
15
SI is: 13500.0
Enter Principle:
16000
Enter Time:
16
SI is: 15360.0
Enter Principle:
17000
Enter Time:
17
SI is: 17340.0
Enter Principle:
18000
Enter Time:
18
SI is: 19440.0
Enter Principle:
19000
Enter Time:
19
SI is: 21660.0
Enter Principle:
20000
Enter Time:
20
SI is: 24000.0
Enter Principle:
21000
Enter Time:
21
SI is: 26460.0
Enter Principle:
22000
Enter Time:
22
SI is: 29040.0
Enter Principle:
23000
Enter Time:
23
SI is: 31740.0
Enter Principle:
24000
Enter Time:
24
SI is: 34560.0
Enter Principle:
25000
Enter Time:
25
SI is: 37500.0
Enter Principle:
26000
Enter Time:
26
SI is: 40560.0
Enter Principle:
27000
Enter Time:
27
SI is: 43740.0
Enter Principle:
28000
Enter Time:
28
SI is: 47040.0
Enter Principle:
29000
Enter Time:
29
SI is: 50460.0
Enter Principle:
30000
Enter Time:
30
SI is: 54000.0
Explanation:
1. Class Usage:
o BusinessMan class has attributes principle, time, and a static rate.
o It contains methods to take input, calculate simple interest, and display results.
2. Dynamic Object Creation:
o Instead of writing 30 separate object declarations, an array of objects is used.
o A for loop dynamically initializes, processes, and displays interest calculations using new
BusinessMan().
3. Incrementing Values:
o principle starts at 1000 and increases by 1000 in each iteration.
o time starts at 1 and increases by 1 in each iteration.
4. Efficiency:
o The loop handles all objects, avoiding redundant code.
o The approach allows scalability, making it easy to modify for more objects.