Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Create a Swing application that looks and behaves like the example located at the top of this assignment. Start with your code from week one

Create a Swing application that looks and behaves like the example located at the top of this assignment. Start with your code from week one and implement the use of the Oracle database in place of the array used in week one. The functionality you are looking for is the following:

  • Modify your CLASSPATH environment variable to include both the Oracle thin drivers .jar file and the current working directory.
  • Load the Oracle Thin Drivers
  • Create a connection to the Oracle database.
  • Execute a query of the database to retrieve a populated ResultSet.
  • Then with the populated ResultSet:
    • The Previous button will iterate through the ResultSet moving to the previous element each time the button is clicked and will then update the GUI with the newly selected data. If the Previous button is selected while the ResultSet is positioned at the first element, your program should then move the last element and update the display with the newly selected data.
    • The Next button will iterate through the ResultSet moving to the next element each time the button is clicked and will then update the GUI with the newly selected data. If the Next button is selected while the ResultSet is positioned at the last element, your program should then move the first element and update the display with the newly selected data.
    • When the Reset button is selected you should move to the first element in the ResultSet and update the display.

I have spent many hours trying to figure this out and could use some help. Connecting to an Oracle Database which will fill the GUI with information.

Original Code:

import javax.swing.*;

import java.awt.*;

public class Assignment_02Source extends JFrame {

private JButton buttonPrev = new JButton("Prev");

private JButton buttonReset = new JButton("Reset");

private JButton buttonNext = new JButton("Next");

private JLabel labelHeader = new JLabel("Database Browser", JLabel.CENTER);

private JLabel labelName = new JLabel("Name");

private JLabel labelAddress = new JLabel("Address");

private JLabel labelCity = new JLabel("City");

private JLabel labelState = new JLabel("State");

private JLabel labelZip = new JLabel("Zip");

private JTextField textFieldName = new JTextField();

private JTextField textFieldAddress = new JTextField();

private JTextField textFieldCity = new JTextField();

private JTextField textFieldState = new JTextField();

private JTextField textFieldZip = new JTextField();

DataClass[] DataClassArray = {

new DataClass("Fred", "Wayne", "101 Here", "NE", "55551"),

new DataClass("Goerge", "Thomas", "102 There", "ME", "55552"),

new DataClass("Mike", "Johnson", "103 No Where", "OK", "55553") };

int arrayPointer = 0;

public Assignment_02Source(String title) {

super(title);

setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);

JPanel cp = (JPanel) getContentPane();

labelHeader.setFont(new Font("TimesRoman", Font.BOLD, 24));

labelHeader.setBounds(40, 10, 300, 50);

buttonPrev.setBounds(30, 250, 80, 25);

buttonReset.setBounds(150, 250, 80, 25);

buttonNext.setBounds(270, 250, 80, 25);

labelName.setBounds(10, 80, 80, 25);

labelAddress.setBounds(10, 110, 80, 25);

labelCity.setBounds(10, 140, 80, 25);

labelState.setBounds(10, 170, 80, 25);

labelZip.setBounds(10, 200, 80, 25);

textFieldName.setBounds(120, 80, 250, 25);

textFieldAddress.setBounds(120, 110, 250, 25);

textFieldCity.setBounds(120, 140, 250, 25);

textFieldState.setBounds(120, 170, 250, 25);

textFieldZip.setBounds(120, 200, 250, 25);

cp.setLayout(null);

cp.add(labelHeader);

cp.add(buttonPrev);

cp.add(buttonReset);

cp.add(buttonNext);

cp.add(labelName);

cp.add(textFieldName);

cp.add(labelAddress);

cp.add(textFieldAddress);

cp.add(labelCity);

cp.add(textFieldCity);

cp.add(labelState);

cp.add(textFieldState);

cp.add(labelZip);

cp.add(textFieldZip);

addWindowListener(new java.awt.event.WindowAdapter() {

public void windowClosing(java.awt.event.WindowEvent evt) {

shutDown();

}

}); // action listener for previous button buttonPrev.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

arrayPointer--;

if (arrayPointer < 0) {

arrayPointer = DataClassArray.length - 1;

}

setFields(arrayPointer);

}

});

// action listener for next button buttonNext.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

arrayPointer++; // next position

if (arrayPointer == DataClassArray.length) {

arrayPointer = 0;

}

setFields(arrayPointer);

}

});

// action listener for reset button buttonReset.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

arrayPointer = 0;

setFields(arrayPointer);

}

}); setFields(arrayPointer);

}

private void setFields(int position) {

textFieldName.setText(DataClassArray[position].getName());

textFieldAddress.setText(DataClassArray[position].getAddress());

textFieldCity.setText(DataClassArray[position].getCity());

textFieldState.setText(DataClassArray[position].getState());

textFieldZip.setText(DataClassArray[position].getZip());

}

private void shutDown() {

int returnVal = JOptionPane.showConfirmDialog(this,

"Are you sure you want to quit?");

if (returnVal == JOptionPane.YES_OPTION) {

System.exit(0);

}

}

public static void main(String args[]) {

Assignment_02Source a2 = new Assignment_02Source("Database Browser");

a2.setSize(400, 350);

a2.setVisible(true);

}

}

class DataClass {

// To save space I declared all String objects on a single line String name, address, city, state, zipCode;

DataClass(String name, String address, String city, String state, String zipCode){

this.name = name; this.address = address; this.city = city; this.state = state; this.zipCode = zipCode; }

// To save space I placed the methods on a single line String getName(){return this.name;} String getAddress(){return this.address;} String getCity(){return this.city;} String getState(){return this.state;} String getZip(){return this.zipCode;} }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Creating A Database In Filemaker Pro Visual QuickProject Guide

Authors: Steven A. Schwartz

1st Edition

0321321219, 978-0321321213

More Books

Students also viewed these Databases questions

Question

What has been your desire for leadership in CVS Health?

Answered: 1 week ago

Question

Question 5) Let n = N and Y Answered: 1 week ago

Answered: 1 week ago