CREATE A DATABASE "addItemDB.mdb" IN MS-ACCESS.
CREATE A TABLE "persons" with the following fields
id- Auto Number
firstName-Text
middleName-Text
familyName-Text
Age- Number
SAVE THE DATABASE.
TYPE THE FOLLOWING CODE IN THE NOTEPAD AND RUN THE PROGRAM
//Java Core Package
import javax.swing.*;
//Java Extension Package
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class retrieveDBUsingJList extends JFrame {
//Initializing program components
private DefaultListModel model;
private JButton buttons[];
private JList dbList;
private JPanel p1,p2;
private String bLabel[] = {"ID","First Name","Middle Name","Last Name","Age"};
Connection con;
Statement st;
ResultSet rs;
String db;
//Setting up GUI
public retrieveDBUsingJList() {
//Setting up the Title of the Window
super("Retrieve DB and Display Using JList");
//Set Size of the Window (WIDTH, HEIGHT)
setSize(300,200);
//Exit Property of the Window
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Constructing JButtons, JList, and DefaultListModel
model = new DefaultListModel();
buttons = new JButton[5];
dbList = new JList(model);
//Setting up JList property
dbList.setVisibleRowCount(5);
dbList.setFixedCellHeight(27);
dbList.setFixedCellWidth(130);
dbList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//Constructing JPanel 1 and its property
p1 = new JPanel();
p1.setBorder(BorderFactory.createTitledBorder("Database: "));
p1.add(new JScrollPane(dbList)); //Adding JList in JPanel 1
//Constructing JPanel 2 and its property
p2 = new JPanel();
p2.setLayout(new GridLayout(5,1));
p2.setBorder(BorderFactory.createTitledBorder("Display: "));
//Constructing all 5 JButtons using "for loop" and add it in JPanel 2
for(int count=0; count<buttons.length; count++) {
buttons[count] = new JButton(bLabel[count]);
p2.add(buttons[count]);
}
//Setting up the container ready for the components to be added.
Container pane = getContentPane();
setContentPane(pane);
//Setting up the container layout
GridLayout grid = new GridLayout(1,2);
pane.setLayout(grid);
//Creating a connection to MS Access and fetch errors using "try-catch" to check if it is successfully connected or not.
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
db = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=addItemDB.mdb;";
con = DriverManager.getConnection(db,"","");
st = con.createStatement();
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Failed to Connect to Database","Error Connection", JOptionPane.WARNING_MESSAGE);
System.exit(0);
}
//Implemeting Even-Listener on JButton buttons[0] which is ID
buttons[0].addActionListener(
new ActionListener() {
//Handle JButton event if it is clicked
public void actionPerformed(ActionEvent event) {
try {
model.clear();
rs=st.executeQuery("select * from person");
while (rs.next()) {
model.addElement(rs.getString("id"));
}
} catch (Exception e) {
System.out.println("Retrieving Data Fail");
}
}
}
);
//Implemeting Even-Listener on JButton buttons[1] which is First Name
buttons[1].addActionListener(
new ActionListener() {
//Handle JButton event if it is clicked
public void actionPerformed(ActionEvent event) {
try {
model.clear();
rs=st.executeQuery("select * from person");
while (rs.next()) {
model.addElement(rs.getString("firstName"));
}
} catch (Exception e) {
System.out.println("Retrieving Data Fail");
}
}
}
);
//Implemeting Even-Listener on JButton buttons[2] which is Middle Name
buttons[2].addActionListener(
new ActionListener() {
//Handle JButton event if it is clicked
public void actionPerformed(ActionEvent event) {
try {
model.clear();
rs=st.executeQuery("select * from person");
while (rs.next()) {
model.addElement(rs.getString("middleName"));
}
} catch (Exception e) {
System.out.println("Retrieving Data Fail");
}
}
}
);
//Implemeting Even-Listener on JButton buttons[3] which is Last Name
buttons[3].addActionListener(
new ActionListener() {
//Handle JButton event if it is clicked
public void actionPerformed(ActionEvent event) {
try {
model.clear();
rs=st.executeQuery("select * from person");
while (rs.next()) {
model.addElement(rs.getString("familyName"));
}
} catch (Exception e) {
System.out.println("Retrieving Data Fail");
}
}
}
);
//Implemeting Even-Listener on JButton buttons[4] which is Age
buttons[4].addActionListener(
new ActionListener() {
//Handle JButton event if it is clicked
public void actionPerformed(ActionEvent event) {
try {
model.clear();
rs=st.executeQuery("select * from person");
while (rs.next()) {
model.addElement(rs.getString("age"));
}
} catch (Exception e) {
System.out.println("Retrieving Data Fail");
}
}
}
);
//Adding components to the container
pane.add(p1);
pane.add(p2);
/**Set all the Components Visible.
* If it is set to "false", the components in the container will not be visible.
*/
setVisible(true);
setResizable(false);
}
//Main Method
public static void main (String[] args) {
retrieveDBUsingJList rdjl = new retrieveDBUsingJList();
}
}