CIS355A Week 4 Lab Stocks4U Portfolio Management System

OBJECTIVES

  • Create a GUI that uses JList and JTabbedPanes.
  • Process multiple objects in an ArrayList.
  • Code event handlers for multiple events.

PROBLEM: Stocks4U Portfolio Management System
Stocks4U needs to develop an app for you to manage your stock purchases.You should be able to store a list of stock purchases, view the individual stocks, add and remove stocks.

FUNCTIONAL REQUIREMENTS
You can code the GUI by hand or use NetBeans GUI builder interface.

The GUI should have two tabs usingJTabbedPane.

  • One tab (“Show stocks”) should have
    1. a JList to display all the stock purchases;
    2. a text field or label to display information about a particular stock; and
    3. a JButton to remove a stock.
  • One tab (“Add stock”) should have textboxes, labels, and a button to input a stock.

Create a Stock class to manage the stock activity. It should have private instance variables of

  • company name;
  • number of shares;
  • purchase price; and
  • current price.

Create a default and parameterized constructor.
Create sets/gets for all instance variables.
Create a get method to calculate and return the profit or loss. This would be calculated as

	Number of shares * (current price – purchase price).

Create toString to display the name of the stock.

As you add stocks, they are displayed in the JList.
If you select an element in the JList, the gain or loss is displayed in the label or text field.
If you select an element in the JList and click Remove, the stock is removed from the list.

CODE STYLE REQUIREMENTS

  • Include meaningful comments throughout your code.
  • Use meaningful names for variables.
  • Code must be properly indented.
  • Include a comment header at beginning of each file, example below.

/****************************************************
Program Name: ProgramName.java
Programmer’s Name: Student Name
Program Description: Describe here what this program will do
***********************************************************/

DELIVERABLES
Submit as a SINGLE zip folder

  • All java files
  • Lab report

Follow assignment specification regarding class/method names.
Note that your java filename must match class name (DO NOT rename).



This slideshow requires JavaScript.


This assignment includes a zip file.

  • Attachments
    • CIS355A_Week_4_Lab.zip (800.14 KB)
      • CIS355A-Lab-4-Add-Stock-Screenshot.png
      • CIS355A-Lab-4-Netbeans-Screenshot.png
      • CIS355A-Lab-4-REPORT-Screenshot.png
      • CIS355A-Lab-4-Show-Stock-Screenshot.png
      • cis355a_lab_4_report.docx
      • Java code
      • Netbeans project
        • CIS355AWeek4Lab
          • build
            • classes
              • .netbeans_automatic_build
              • .netbeans_update_resources
              • Stock.class
              • StockGUI.class
          • build.xml
          • manifest.mf
          • nbproject
            • build-impl.xml
            • genfiles.properties
            • private
              • private.properties
              • private.xml
            • project.properties
            • project.xml
          • src
          • test
      Preview random excerpt
      }
      xxxxxx xxxxx(xxxxxx xxxxx, xxx xxxxxxx, xxxxxx xxxxxx, xxxxxx xxxxxx) {
      xxxxxxxxxxxxxx(xxxxx);
      xxxxxxxxxxxxxxx
      (nShares);
      xxxxxxxxxxxxxxxx
      (pPrice);
      xxxxxxxxxxxxxxx
      (
      xxxxxx
      ); }
      xxxxxx
      void setCompanyName(String cName) {
      xxxx
      .companyName = cName; } public
      xxxxxx
      getCompanyName() {
      xxxxxx xxxxxxxxxxx;
      }
      - - - more text follows - - -
      Preview random excerpt
      xxxxxx xxxxxxxx() {
      xxxxxxxxxxxxxx();
      xxxxxxxxxxxx.xxxxxxxx(xxx xxxxxxxxxxxxxxxx());
      }
      @
      xxxxxxxxxxxxxxxx
      ("unchecked") // //
      xxx
      -BEGIN:initComponents
      xxxxxxx
      void initComponents() {
      xxxxxxxxxxx
      =
      xxx
      javax.swing.JTextField(); tabbedPane = new javax.swing.JTabbedPane(); listTab =
      xxx
      javax.
      xxxxx
      .JPanel();
      xxxxxxxxxxxx
      =
      xxx
      javax.
      xxxxx
      .JScrollPane();
      xxxxxxxxxxxx
      = new javax.
      xxxxx
      .JList();
      xxxxxxxxx
      = new javax.
      xxxxx
      .JLabel();
      xxxxxxxxxxxxxxxxx = xxx xxxxx.xxxxx.xxxxxxx();
      xxxxxxxxxxx = xxx xxxxx.xxxxx.xxxxxx();
      xxxxxxxxxxxxxx = xxx xxxxx.xxxxx.xxxxxx();
      - - - more text follows - - -
      Preview random excerpt
      }
      xxxxxx xxxxx(xxxxxx xxxxx, xxx xxxxxxx, xxxxxx xxxxxx, xxxxxx xxxxxx) {
      xxxxxxxxxxxxxx(xxxxx);
      xxxxxxxxxxxxxxx
      (nShares);
      xxxxxxxxxxxxxxxx
      (
      xxxxxx
      );
      xxxxxxxxxxxxxxx
      (cPrice); }
      xxxxxx
      void setCompanyName(String cName) {
      xxxx
      .companyName =
      xxxxx
      ; } public String getCompanyName() {
      xxxxxx xxxxxxxxxxx;
      }
      - - - more text follows - - -
      Preview random excerpt
      xxxxxx xxxxxxxx() {
      xxxxxxxxxxxxxx();
      xxxxxxxxxxxx.xxxxxxxx(xxx xxxxxxxxxxxxxxxx());
      }
      @
      xxxxxxxxxxxxxxxx
      (
      xxxxxxxxxxx
      ) // //
      xxx
      -
      xxxxx
      :initComponents
      xxxxxxx
      xxxx
      initComponents() {
      xxxxxxxxxxx
      =
      xxx
      xxxxx
      .
      xxxxx
      .JTextField();
      xxxxxxxxxx
      =
      xxx
      javax.swing.JTabbedPane();
      xxxxxxx
      = new javax.swing.
      xxxxxx
      ();
      xxxxxxxxxxxx
      =
      xxx
      javax.swing.JScrollPane();
      xxxxxxxxxxxx
      =
      xxx
      xxxxx
      .
      xxxxx
      .
      xxxxx
      ();
      xxxxxxxxx
      = new javax.
      xxxxx
      .JLabel();
      xxxxxxxxxxxxxxxxx = xxx xxxxx.xxxxx.xxxxxxx();
      xxxxxxxxxxx = xxx xxxxx.xxxxx.xxxxxx();
      xxxxxxxxxxxxxx = xxx xxxxx.xxxxx.xxxxxx();
      - - - more text follows - - -



    Purchasing Instruction
    List Price: $19
    Buy Now

    Buy More Save More
    Buy at least TWO items & save up to 30% OFF your ENTIRE order!
    Rack up instant rebates in your shopping cart. Simply add items to your cart, and see the savings add up.
    Discounts will automatically be applied on eligible orders.

    Add to Cart
    FLASH SALE
    $119

    $145 Save $26
    CIS355A Entire Course