MIT-Curricular/OOP/Java/Lab/Week13/EmployeeMoney.java

96 lines
2.2 KiB
Java

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
class Employee {
private String name;
private String empID;
private String designation;
private double basicPay;
private double DA;
private double HRA;
private double PF;
private double LIC;
private double netSalary;
public Employee(
String name,
String empID,
String designation,
double basicPay,
double LIC
) {
this.name = name;
this.empID = empID;
this.designation = designation;
this.basicPay = basicPay;
this.LIC = LIC;
this.DA = 0.4 * basicPay;
this.HRA = 0.15 * basicPay;
this.PF = 0.12 * basicPay;
this.netSalary = basicPay + DA + HRA - PF - LIC;
}
public String getEmployeeInfo() {
return String.format(
"""
Employee Details:
Name: %s
Employee ID: %s
Designation: %s
Basic Pay: $%.2f
DA: $%.2f
HRA: $%.2f
PF: $%.2f
LIC: $%.2f
Net Salary: $%.2f
""",
name,
empID,
designation,
basicPay,
DA,
HRA,
PF,
LIC,
netSalary
);
}
}
public class EmployeeInfoApp extends Application {
@Override
public void start(Stage primaryStage) {
Employee emp = new Employee(
"John Doe",
"E123",
"Software Engineer",
50000,
2000
);
Label infoLabel = new Label(emp.getEmployeeInfo());
infoLabel.setStyle("-fx-font-family: monospace;");
VBox root = new VBox(10);
root.setPadding(new Insets(10));
root.getChildren().add(infoLabel);
Scene scene = new Scene(root, 300, 400);
primaryStage.setTitle("Employee Information");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}