You are on page 1of 16

package groupproject;

import java.awt.Color;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.Vector;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.JTextField;

public class StudentList implements ActionListener{

//Main Window

JFrame mainframe = new JFrame();

JPanel mainpanel = new JPanel();

JLabel welcomelabel = new JLabel("\"12-Gumamela Student List\"");

JLabel welcominglabel = new JLabel("Please select operation");


JButton insertbtn = new JButton("Insert");

JButton updatebtn = new JButton("Update");

JButton removebtn = new JButton("Remove");

JButton viewbtn = new JButton("View");

JLabel cplabel = new JLabel("Computer Programming Teacher: Melvin Manliclic");

// Insert Button Window

JFrame insertframe = new JFrame();

JPanel insertpanel = new JPanel();

JLabel insertinstructionlabel = new JLabel("Please provide information to add a data");

JLabel insertstudentidlabel = new JLabel("Enter Student Id:");

JTextField insertstudentidtext = new JTextField(20);

JLabel insertfirstnamelabel = new JLabel("Enter First name :");

JTextField insertfirstnametext = new JTextField(20);

JLabel insertmiddlenamelabel = new JLabel("Enter Middle name :");

JTextField insertmiddlenametext = new JTextField(20);

JLabel insertlastnamelabel = new JLabel("Enter Last name :");

JTextField insertlastnametext = new JTextField(20);

JLabel insertagelabel = new JLabel("Enter Age :");

JTextField insertagetext = new JTextField(20);

JButton insertok = new JButton("Ok");

//View Window

JFrame viewframe = new JFrame();

JPanel viewpanel = new JPanel();

//Update WIndow

JFrame updateframe = new JFrame();


JPanel updatepanel = new JPanel();

JLabel uinstructionlabel = new JLabel("Please provide information to update a data");

JLabel ustudentidlabel = new JLabel("Enter Student id:");

JTextField ustudentidtext = new JTextField(20);

JLabel ufirstnamelabel = new JLabel("Enter First name:");

JTextField ufirstnametext = new JTextField(20);

JLabel umiddlenamelabel = new JLabel("Enter Middle name:");

JTextField umiddlenametext = new JTextField(20);

JLabel ulastnamelabel = new JLabel("Enter Last name:");

JTextField ulastnametext = new JTextField(20);

JLabel uagelabel = new JLabel("Enter age:");

JTextField uagetext = new JTextField(20);

JButton updateok = new JButton("Ok");

//Remove Window

JFrame removeframe = new JFrame();

JPanel removepanel = new JPanel();

JLabel rinstructionlabel = new JLabel("You are deleting a data");

JLabel removestudentidlabel = new JLabel("Enter Student id :");

JTextField removestudentidtext = new JTextField(20);

JButton removeok = new JButton("Ok");

Connection con = null;

Vector datacol = new Vector();

Vector datarow = new Vector();

JTable datatable;

JScrollPane viewdata;

public void run(){


mainwindow();

public void mainwindow(){

mainpanel.setBackground(Color.PINK);

mainpanel.setLayout(null);

welcomelabel.setFont(new java.awt.Font("Times New Roman", 0, 36));

welcominglabel.setFont(new java.awt.Font("Times New Roman", 0, 24));

insertbtn.setFont(new java.awt.Font("Times New Roman", 0, 18));

updatebtn.setFont(new java.awt.Font("Times New Roman", 0, 18));

removebtn.setFont(new java.awt.Font("Times New Roman", 0, 18));

viewbtn.setFont(new java.awt.Font("Times New Roman", 0, 18));

cplabel.setFont(new java.awt.Font("Times New Roman", 0, 18));

welcomelabel.setBounds(240, 80, 420, 43);

welcominglabel.setBounds(320, 170, 230, 29);

insertbtn.setBounds(160, 360, 90, 29);

updatebtn.setBounds(300, 360, 100, 30);

removebtn.setBounds(460, 360, 100, 30);

viewbtn.setBounds(620, 360, 100, 30);

cplabel.setBounds(10, 450, 370, 21);

mainpanel.add(welcomelabel);

mainpanel.add(welcominglabel);

mainpanel.add(insertbtn);

mainpanel.add(updatebtn);

mainpanel.add(removebtn);

mainpanel.add(viewbtn);
mainpanel.add(cplabel);

mainframe.add(mainpanel);

mainframe.setSize(900,550);

mainframe.setVisible(true);

insertbtn.addActionListener(this);

updatebtn.addActionListener(this);

removebtn.addActionListener(this);

viewbtn.addActionListener(this);

public void insertwindow(){

insertpanel.setBackground(Color.PINK);

insertstudentidlabel.setForeground(Color.BLACK);

insertfirstnamelabel.setForeground(Color.BLACK);

insertlastnamelabel.setForeground(Color.BLACK);

insertmiddlenamelabel.setForeground(Color.BLACK);

insertagelabel.setForeground(Color.BLACK);

insertpanel.setLayout(null);

insertinstructionlabel.setFont(new java.awt.Font("Times New Roman", 0, 30));

insertstudentidlabel.setFont(new java.awt.Font("Times New Roman", 0, 24));

insertfirstnamelabel.setFont(new java.awt.Font("Times New Roman", 0, 24));

insertmiddlenamelabel.setFont(new java.awt.Font("Times New Roman", 0, 24));

insertlastnamelabel.setFont(new java.awt.Font("Times New Roman", 0, 24));

insertagelabel.setFont(new java.awt.Font("Times New Roman", 0, 24));

insertok.setFont(new java.awt.Font("Times New Roman", 0, 18));

insertinstructionlabel.setBounds(210, 50, 480, 35);


insertstudentidlabel.setBounds(140, 150, 170, 29);

insertstudentidtext.setBounds(320, 150, 170, 30);

insertfirstnamelabel.setBounds(140, 210, 180, 29);

insertfirstnametext.setBounds(320, 210, 170, 30);

insertmiddlenamelabel.setBounds(140, 270, 200, 29);

insertmiddlenametext.setBounds(340, 270, 150, 30);

insertlastnamelabel.setBounds(140, 330, 180, 29);

insertlastnametext.setBounds(320, 330, 170, 30);

insertagelabel.setBounds(140, 390, 110, 29);

insertagetext.setBounds(260, 390, 70, 30);

insertok.setBounds(430, 454, 70, 29);

insertpanel.add(insertinstructionlabel);

insertpanel.add(insertstudentidlabel);

insertpanel.add(insertstudentidtext);

insertpanel.add(insertfirstnamelabel);

insertpanel.add(insertfirstnametext);

insertpanel.add(insertmiddlenamelabel);

insertpanel.add(insertmiddlenametext);

insertpanel.add(insertlastnamelabel);

insertpanel.add(insertlastnametext);

insertpanel.add(insertagelabel);

insertpanel.add(insertagetext);

insertpanel.add(insertok);

insertframe.add(insertpanel);

insertframe.setSize(900,550);

insertframe.setVisible(true);

insertok.addActionListener(this);

insertframe.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){

mainframe.setVisible(true);

});

public void viewwindow(){

datacol.removeAllElements();

datarow.removeAllElements();

OpenDatabase();

try{

Statement st = con.createStatement();

ResultSet rs = st.executeQuery("SELECT * FROM StudentInformation ORDER BY studentid");

ResultSetMetaData rms = rs.getMetaData();

int cols = rms.getColumnCount();

for(int i=1;i<=cols;i++){

datacol.addElement(rms.getColumnName(i));

while(rs.next()){

Vector row = new Vector(cols);

for(int i=1;i<=cols;i++){

row.addElement(rs.getObject(i));

datarow.addElement(row);

datatable = new JTable(datarow,datacol);

viewdata = new JScrollPane(datatable);

catch(Exception e){
JOptionPane.showConfirmDialog(null, "Problem in Database connectivity or Data","Result",
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE);

viewpanel.setLayout(null);

viewdata.setBounds(0, 0, 900, 500);

viewpanel.add(viewdata);

viewframe.add(viewpanel);

viewframe.setSize(900,500);

viewframe.setVisible(true);

viewframe.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

mainframe.setVisible(true);

});

public void updatewindow(){

ufirstnametext.disable();

umiddlenametext.disable();

ulastnametext.disable();

uagetext.disable();

ufirstnametext.setText("");

umiddlenametext.setText("");

ulastnametext.setText("");

uagetext.setText("");

updatepanel.setBackground(Color.PINK);
uinstructionlabel.setForeground(Color.BLACK);

ustudentidlabel.setForeground(Color.BLACK);

ufirstnamelabel.setForeground(Color.BLACK);

umiddlenamelabel.setForeground(Color.BLACK);

ulastnamelabel.setForeground(Color.BLACK);

uagelabel.setForeground(Color.BLACK);

updatepanel.setLayout(null);

uinstructionlabel.setFont(new java.awt.Font("Times New Roman", 0, 30));

ustudentidlabel.setFont(new java.awt.Font("Times New Roman", 0, 24));

ufirstnamelabel.setFont(new java.awt.Font("Times New Roman", 0, 24));

umiddlenamelabel.setFont(new java.awt.Font("Times New Roman", 0, 24));

ulastnamelabel.setFont(new java.awt.Font("Times New Roman", 0, 24));

uagelabel.setFont(new java.awt.Font("Times New Roman", 0, 24));

updateok.setFont(new java.awt.Font("Times New Roman", 0, 18));

uinstructionlabel.setBounds(190, 50, 530, 35);

ustudentidlabel.setBounds(140, 150, 170, 29);

ustudentidtext.setBounds(320, 150, 170, 30);

ufirstnamelabel.setBounds(140, 210, 180, 29);

ufirstnametext.setBounds(320, 210, 170, 30);

umiddlenamelabel.setBounds(140, 270, 200, 29);

umiddlenametext.setBounds(340, 270, 150, 30);

ulastnamelabel.setBounds(140, 330, 180, 29);

ulastnametext.setBounds(320, 330, 170, 30);

uagelabel.setBounds(140, 390, 110, 29);

uagetext.setBounds(260, 390, 70, 30);

updateok.setBounds(430, 454, 70, 29);

updatepanel.add(uinstructionlabel);

updatepanel.add(ustudentidlabel);
updatepanel.add(ustudentidtext);

updatepanel.add(ufirstnamelabel);

updatepanel.add(ufirstnametext);

updatepanel.add(umiddlenamelabel);

updatepanel.add(umiddlenametext);

updatepanel.add(ulastnamelabel);

updatepanel.add(ulastnametext);

updatepanel.add(uagelabel);

updatepanel.add(uagetext);

updatepanel.add(updateok);

updateframe.add(updatepanel);

updateframe.setSize(900,550);

updateframe.setVisible(true);

updateok.addActionListener(this);

updateframe.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

mainframe.setVisible(true);

});

ustudentidtext.addActionListener(this);

public void removewindow(){

removepanel.setBackground(Color.PINK);

rinstructionlabel.setForeground(Color.BLACK);

removestudentidlabel.setForeground(Color.BLACK);

removepanel.setLayout(null);
rinstructionlabel.setFont(new java.awt.Font("Times New Roman", 0, 30));

removestudentidlabel.setFont(new java.awt.Font("Times New Roman", 0, 24));

removeok.setFont(new java.awt.Font("Times New Roman", 0, 18));

rinstructionlabel.setBounds(290, 50, 290, 35);

removestudentidlabel.setBounds(210, 250, 170, 29);

removestudentidtext.setBounds(400, 250, 170, 30);

removeok.setBounds(400, 440, 70, 29);

removepanel.add(rinstructionlabel);

removepanel.add(removestudentidlabel);

removepanel.add(removestudentidtext);

removepanel.add(removeok);

removeframe.add(removepanel);

removeframe.setSize(900,550);

removeframe.setVisible(true);

removeok.addActionListener(this);

removestudentidtext.addActionListener(this);

removeframe.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

mainframe.setVisible(true);

});

public void insertdata(int sid, String sfname, String smname, String slname, int sage){
try{

Statement st = con.createStatement();

st.executeUpdate("INSERT INTO StudentInformation VALUES("+sid+", '"+sfname+"',


'"+smname+"', '"+slname+"',"+sage+")");

JOptionPane.showConfirmDialog(null, "Data has been inserted", "Result",


JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE);

}catch(Exception e){

JOptionPane.showConfirmDialog(null, "Problem connecting to database", "Result",


JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE);

public void removedata(int sid){

try{

Statement st = con.createStatement();

st.executeUpdate("DELETE FROM StudentInformation WHERE studentid ="+sid);

JOptionPane.showConfirmDialog(null, "Data deleted successfully", "Result",


JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE);

}catch(Exception e){

JOptionPane.showConfirmDialog(null, "Problem connecting to Database", "Result",


JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE);

public void updatedata(int sid, String sfname, String smname, String slname, int sage){

try{

Statement st = con.createStatement();

st.executeUpdate("UPDATE StudentInformation SET firstname ='"+sfname+"', middlename


='"+smname+"', lastname ='"+slname+"', age ="+sage+" where studentid ="+sid);

JOptionPane.showConfirmDialog(null, "The data updated succesfully", "Result",


JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE);
}catch(Exception e){

JOptionPane.showConfirmDialog(null, "Problem connecting toqq database", "Result",


JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE);

public void OpenDatabase(){

try{

Class.forName("oracle.jdbc.driver.OracleDriver");

con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL", "SYSTEM",


"CLIFFORD");

}catch(Exception e){

System.out.println(e);

public void CloseDatabase(){

try{

con.close();

}catch(SQLException e){

e.printStackTrace();

@Override

public void actionPerformed(ActionEvent arg0){

if(arg0.getSource()==insertbtn){

mainframe.setVisible(false);

insertwindow();

if(arg0.getSource()==viewbtn){
mainframe.setVisible(false);

viewwindow();

if(arg0.getSource()==updatebtn){

mainframe.setVisible(false);

updatewindow();

if(arg0.getSource()==removebtn){

mainframe.setVisible(false);

removewindow();

if(arg0.getSource()==insertok){

int studentid = Integer.parseInt(insertstudentidtext.getText());

String sfname = insertfirstnametext.getText();

String smname = insertmiddlenametext.getText();

String slname = insertlastnametext.getText();

int sage = Integer.parseInt(insertagetext.getText());

try{

OpenDatabase();

insertdata(studentid, sfname, smname, slname, sage);

CloseDatabase();

}catch(Exception e){

System.out.println(e);

insertstudentidtext.setText("");

insertfirstnametext.setText("");

insertmiddlenametext.setText("");

insertlastnametext.setText("");

insertagetext.setText("");

}
if(arg0.getSource()==updateok){

int sid = Integer.parseInt(ustudentidtext.getText());

String sfname = ufirstnametext.getText();

String smname = umiddlenametext.getText();

String slname = ulastnametext.getText();

int sage = Integer.parseInt(uagetext.getText());

OpenDatabase();

updatedata(sid, sfname, smname, slname, sage);

CloseDatabase();

if(arg0.getSource()==ustudentidtext){

int sid = Integer.parseInt(ustudentidtext.getText());

try{

OpenDatabase();

Statement st = con.createStatement();

ResultSet rs = st.executeQuery("select * from StudentInformation where studentid ="+sid);

if(rs.next()){

ufirstnametext.setText(rs.getString("firstname"));

umiddlenametext.setText(rs.getString("middlename"));

ulastnametext.setText(rs.getString("lastname"));

uagetext.setText(String.valueOf(rs.getInt("age")));

CloseDatabase();

ustudentidtext.disable();

ufirstnametext.enable();

umiddlenametext.enable();

ulastnametext.enable();

uagetext.enable();

}catch(Exception e){

JOptionPane.showConfirmDialog(null, "Problem in Database connectivity or Data", "Result",


JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE);
}

if(arg0.getSource()==removeok){

int sid = Integer.parseInt(removestudentidtext.getText());

OpenDatabase();

removedata(sid);

CloseDatabase();

public static void main(String args[]){

StudentList sl = new StudentList();

sl.run();

You might also like