J Worksheet 11 GUI v1
J Worksheet 11 GUI v1
Lab Worksheet 11
Object Oriented Programming
import javax.swing.*;
import java.awt.event.*;
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String name = textField.getText();
JOptionPane.showMessageDialog(frame, "Hello,
" + name + "!");
}
}
);
frame.setVisible(true);
}
}
With Output
import javax.swing.*;
import java.awt.event.*;
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String name = textField.getText().trim();
if (!name.isEmpty()) {
JOptionPane.showMessageDialog(frame, "Hello, " + name + "!");
inputHistory.append(name).append("\n");
Listed_Students.setText(inputHistory.toString());
textField.setText("");
} else {
JOptionPane.showMessageDialog(frame, "Please enter a name.");
}
}
});
frame.setVisible(true);
}}
Write to File
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
public class jguiOneoutputfile {
public static void main(String[] args) {
JFrame frame = new JFrame("User Data Form");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);
frame.add(nameLabel); frame.add(nameField);
frame.add(submitButton);
submitButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String name = nameField.getText();
try {
FileWriter writer = new FileWriter("username.txt", true);
writer.write("Name: " + name + "\n");
writer.write("------------------------\n");
writer.close();
nameField.setText("");
frame.setVisible(true);
}
}
Exercise 1: Modify the Program to read Name, Age and Id and write it to
the File
Exercise 2: Modify the program to create an Account Holder Class. Read
Account Number, Name, Age and ID and write it to the file.
import javax.swing.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.List;
class AccountHolder {
private String name;
private int age;
private String id;
@Override
public String toString() {
return "Name: " + name + ", Age: " + age + ", ID: " + id;
}
}
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
String name = nameField.getText().trim();
String ageText = ageField.getText().trim();
String id = idField.getText().trim();
nameField.setText("");
ageField.setText("");
idField.setText("");
frame.setVisible(true);
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
class AccountHolder {
private String name;
private String accountNumber;
private double balance;
// GUI Setup
JFrame frame = new JFrame("Interest Calculator");
frame.setSize(300, 250);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
computeBtn.addActionListener(e -> {
String accNo = accField.getText().trim();
String rateText = rateField.getText().trim();
AccountHolder acc = getAccountByNumber(accNo);
if (acc == null) {
outputArea.setText("Account not found.");
return;
}
try {
double rate = Double.parseDouble(rateText);
acc.computeInterest(rate);
outputArea.setText("Interest added.\n\n" + acc.toString());
} catch (NumberFormatException ex) {
outputArea.setText("Enter a valid interest rate.");
}
});
frame.setVisible(true);
}
Full Stack
Step 1: Database
use jBank;
CREATE TABLE AccountHolder (
name VARCHAR(100),
age INT,
account_Number VARCHAR(20) PRIMARY KEY,
balance DECIMAL(15, 2),
interest DECIMAL(5, 2)
);
INSERT INTO AccountHolder (name, age, account_Number, balance, interest)
VALUES
('Hari Prasad', 28, 'VUB001', 0, 0),
('Bijoy Shetty', 35, 'VUB1002', 0, 0),
('Chanda K', 22, 'VUB1003', 0, 0),
('Dvikar Reddy', 30, 'VUB1004', 0, 0),
('Eisha P', 40, 'VUB1005', 0, 0),
('Frank Ressul', 26, 'VUB1006', 0, 0),
('Geetha Ram', 33, 'VUB1007', 0, 0),
('Hema Sai', 29, 'VUB1008', 0, 0),
('Ian Nath', 31, 'VUB1009', 0, 0),
('Jyothi Kim', 24, 'VUB1010', 0, 0);
if (rs.next()) {
String name = rs.getString("name");
int age = rs.getInt("age");
double balance = rs.getDouble("balance");
double interest = rs.getDouble("interest");
AccountHolder AH1= new AccountHolder(name, age, accNumber,
balance, interest);
return AH1;
// return new AccountHolder(name, age, accNumber, balance, interest);
}
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
// Getters
public String getName() { return name; }
public int getAge() { return age; }
public double getBalance() { return balance; }
public double getInterest() { return interest; }
}
loadButton.addActionListener(e -> {
String accNum =
accountNumberField.getText().trim();
if (!accNum.isEmpty()) {
accountHolder =
AccountHolder.loadFromDatabase(accNum);
if (accountHolder != null) {
updateLabels();
} else {
JOptionPane.showMessageDialog(frame, "Account
not found.");
}
}
});
depositButton.addActionListener(e -> {
if (accountHolder == null) {
JOptionPane.showMessageDialog(frame, "Load an account first.");
return;
}
try {
double amount = Double.parseDouble(depositField.getText());
accountHolder.deposit(amount);
updateLabels();
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(frame, "Enter a valid amount.");
}
});
frame.setVisible(true);
}
Compilation
Multiple Frames
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
public AccountHolder(String name, int age, String accountNumber, double balance, double
interest) {
this.name = name;
this.age = age;
this.accountNumber = accountNumber;
this.balance = balance;
this.interest = interest;
}
createBtn.addActionListener(e -> {
try {
String name = nameField.getText().trim();
int age = Integer.parseInt(ageField.getText().trim());
String accNum = accNumField.getText().trim();
goToDepositBtn.addActionListener(e -> {
frame.dispose();
new DepositFrame().launch();
});
frame.setVisible(true);
}
}
loadBtn.addActionListener(e -> {
String accNum = accNumField.getText().trim();
if (!accNum.isEmpty()) {
holder[0] = AccountHolder.loadFromDatabase(accNum);
if (holder[0] != null) {
nameLbl.setText("Name: " + holder[0].getName());
ageLbl.setText("Age: " + holder[0].getAge());
balLbl.setText("Balance: ₹" + holder[0].getBalance());
interestLbl.setText("Interest: ₹" + holder[0].getInterest());
} else {
JOptionPane.showMessageDialog(frame, "Account not found.");
}
}
});
depositBtn.addActionListener(e -> {
if (holder[0] == null) {
JOptionPane.showMessageDialog(frame, "Load an account first.");
return;
}
try {
double amount = Double.parseDouble(depField.getText());
holder[0].deposit(amount);
balLbl.setText("Balance: ₹" + holder[0].getBalance());
interestLbl.setText("Interest: ₹" + holder[0].getInterest());
depField.setText("");
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(frame, "Enter a valid deposit amount.");
}
});
backBtn.addActionListener(e -> {
frame.dispose();
new AccountCreationFrame().launch();
});
frame.setVisible(true);
}
}