By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,267 Members | 1,808 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,267 IT Pros & Developers. It's quick & easy.

Need help displaying array of objects using a GUI

sammyboy78
P: 21
I'm trying to display an array of objects using a GUI. My instructions are that the CD class and it's sublcass don't need to change I just need to modify class CDInventory to include the GUI. I'm not even sure if the way I've written this is going to work but anyway, I keep getting a compilation error that says:

C:\Documents and Settings\Sam\GUICDInventory.java:22: cannot find symbol
symbol : constructor JList(CDInventory)
location: class javax.swing.JList
cDJList = new JList( gUICDInventory );


Here's the code where I get the error:

Expand|Select|Wrap|Line Numbers
  1. // GUICDInventory.java
  2. // uses CD class
  3. import java.awt.FlowLayout;
  4. import javax.swing.JFrame;
  5. import javax.swing.JLabel;
  6. import javax.swing.SwingConstants;
  7. import javax.swing.JList;
  8. import javax.swing.JScrollPane;
  9.  
  10. public class GUICDInventory extends JFrame
  11. {
  12.  
  13.     CDInventory gUICDInventory = new CDInventory();
  14.  
  15.     private JList cDJList;
  16.  
  17.     public GUICDInventory()
  18.     {
  19.         super( "Compact Disc Inventory" );
  20.         setLayout( new FlowLayout() );
  21.  
  22.         cDJList = new JList( gUICDInventory );
  23.         cDJList.setVisibleRowCount( 25 );
  24.  
  25.         add( new JScrollPane( cDJList ) );
  26.  
  27.  
  28.  
  29.     }
  30.  
  31.     // executes application
  32.   public static void main( String args[] )
  33.     {
  34.         GUICDInventory guICDInventory = new GUICDInventory();
  35.         guICDInventory.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
  36.         guICDInventory.setSize( 500, 500 );
  37.         guICDInventory.setVisible( true );
  38.  
  39.     } // end main
  40.  
  41. } // end class GUICDInventory
and the other classes:

Expand|Select|Wrap|Line Numbers
  1. // CDInventory.java
  2. // uses CD class
  3.  
  4. public class CDInventory
  5. {
  6.  
  7.     // executes application
  8.     public static void main( String args[] )
  9.     {
  10.  
  11.         CD completeCDInventory[] = new CD2[ 5 ]; // creates a new 5 element array
  12.  
  13.         // populates array with objects that implement CD
  14.         completeCDInventory[ 0 ] = new CD2( "Sixpence None the Richer" , "D121401" , 12 , 11.99, 1990 );
  15.         completeCDInventory[ 1 ] = new CD2( "Clear" , "D126413" , 10 , 10.99, 1998 );
  16.         completeCDInventory[ 2 ] = new CD2( "NewsBoys: Love Liberty Disco" , "2438-51720-2" , 10 , 12.99, 1999 );
  17.         completeCDInventory[ 3 ] = new CD2( "Skillet: Hey You, I Love Your Soul" , "D122966" , 9 , 9.99, 1998 );
  18.         completeCDInventory[ 4 ] = new CD2( "Michael Sweet: Real" , "020831-1376-204" , 15 , 12.99, 1995 );
  19.  
  20.         double totalInventoryValue = CD.calculateTotalInventory( completeCDInventory ); //declares totalInventoryValue variable
  21.  
  22.         CD.displayTotalInventory( completeCDInventory ); //calls CD's display method
  23.  
  24.         System.out.println("Total Inventory Value is: " + totalInventoryValue);
  25.  
  26.         CD.sortedCDInventory( completeCDInventory ); // calls CD's sortedCDInventory method
  27.  
  28.         System.out.println("Total Inventory Value is: " + totalInventoryValue);
  29.  
  30.     } // end main
  31.  
  32. } // end class CDInventory
Expand|Select|Wrap|Line Numbers
  1. // CD2.java
  2. // subclass of CD
  3.  
  4. public class CD2 extends CD
  5. {
  6.     protected int copyrightDate; // CDs copyright date variable declaration
  7.     private double price2;
  8.  
  9.     // constructor
  10.     public CD2( String title, String prodNumber, double numStock, double price, int copyrightDate )
  11.     {
  12.         // explicit call to superclass CD constructor
  13.         super( title, prodNumber, numStock, price );
  14.  
  15.         this.copyrightDate = copyrightDate;
  16.  
  17.     }// end constructor
  18.  
  19.     public double getInventoryValue() // modified subclass method to add restocking fee
  20.     {
  21.         price2 = price + price * 0.05;
  22.         return numStock * price2;
  23.  
  24.     } //end getInventoryValue
  25.  
  26.     public void displayInventory() // modified subclass display method
  27.         {
  28.  
  29.             System.out.printf( "\n%-22s%s\n%-22s%d\n%-22s%s\n%-22s%.2f\n%-22s%s%.2f\n%-22s%s%.2f\n%-22s%s%.2f\n  \n" , "CD Title:", title, "Copyright Date:", copyrightDate, "Product Number:", prodNumber , "Number in Stock:", numStock , "CD Price:" , "$" , price , "Restocking fee (5%):", "$", price*0.05, "Inventory Value:" , "$" , getInventoryValue() );
  30.  
  31.         } // end method
  32.  
  33.  
  34. }//end class CD2
Expand|Select|Wrap|Line Numbers
  1. // CD.java
  2. // Represents a compact disc object
  3. import java.util.Arrays;
  4.  
  5. class CD implements Comparable
  6. {
  7.     protected String title; // CD title (name of product)
  8.     protected String prodNumber; // CD product number
  9.     protected double numStock; // CD stock number
  10.     protected double price; // price of CD
  11.     protected double inventoryValue; //number of units in stock times price of each unit
  12.  
  13.  
  14.     // constructor initializes CD information
  15.     public CD( String title, String prodNumber, double numStock, double price )
  16.     {
  17.         this.title = title; // Artist: album name
  18.         this.prodNumber = prodNumber; //product number
  19.         this.numStock = numStock; // number of CDs in stock
  20.         this.price = price; //price per CD
  21.  
  22.     } // end constructor
  23.  
  24.     public double getInventoryValue()
  25.     {
  26.         return numStock * price;
  27.  
  28.     } //end getInventoryValue
  29.  
  30.     public void displayInventory()
  31.     {
  32.  
  33.         System.out.printf( "\n%s%35s\n%s%12s\n%s%9.2f\n%s%12s%.2f\n%s%.2f\n%s%5s%.2f\n  \n" , "CD Title:", title, "Product Number:", prodNumber , "Number in Stock:", numStock , "CD Price:" , "$" , price , "Restocking fee (5%):", price*0.05, "Inventory Value:" , "$" , getInventoryValue() );
  34.  
  35.     } // end method
  36.  
  37.     public static double calculateTotalInventory( CD completeCDInventory[] )
  38.     {
  39.         double totalInventoryValue = 0;
  40.  
  41.         for ( int count = 0; count < completeCDInventory.length; count++ )
  42.         {
  43.              totalInventoryValue += completeCDInventory[count].getInventoryValue();
  44.  
  45.         } // end for
  46.  
  47.         return totalInventoryValue;
  48.  
  49.     } // end calculateTotalInventory
  50.  
  51.  
  52.     public static void displayTotalInventory( CD completeCDInventory[] )
  53.     {
  54.         System.out.printf( "\n%s\n" ,"Inventory of CDs (unsorted):" );
  55.  
  56.         for ( int count = 0; count < completeCDInventory.length; count++ )
  57.         {
  58.             System.out.printf( "%s%d", "Item# ", count + 1 );
  59.  
  60.             completeCDInventory[count].displayInventory();
  61.  
  62.         }// end for
  63.  
  64.     }// end displayTotalInventory
  65.  
  66.     public int compareTo( Object obj ) //overlaod compareTo method
  67.     {
  68.         CD tmp = ( CD )obj;
  69.  
  70.         if( this.title.compareTo( tmp.title ) < 0 )
  71.         {
  72.             return -1; //instance lt received
  73.         }
  74.         else if( this.title.compareTo( tmp.title ) > 0 )
  75.         {
  76.             return 1; //instance gt received
  77.         }
  78.  
  79.         return 0; //instance == received
  80.  
  81.         }// end compareTo method
  82.  
  83.     public static void sortedCDInventory( CD completeCDInventory[] )
  84.     {
  85.            System.out.printf( "\n%s\n" ,"Inventory of CDs (sorted by title):" );
  86.  
  87.            Arrays.sort( completeCDInventory ); // sort array
  88.  
  89.            for( int count = 0; count < completeCDInventory.length; count++ )
  90.            {
  91.                 System.out.printf( "%s%d", "Item# ", count + 1 );
  92.  
  93.                    completeCDInventory[count].displayInventory();}
  94.            }
  95.  
  96.  
  97. } // end class CD
Jun 28 '07 #1
Share this Question
Share on Google+
3 Replies


10K+
P: 13,264
Read the docs for JList and see where you're doing it wrong. Notice especially it's constructors.
Jun 28 '07 #2

sammyboy78
P: 21
I read about the constructors and it looks like I need this one:

public JList(Object[] listData) Constructs a JList that displays the elements in the specified array. This constructor just delegates to the ListModel constructor.

Parameters:
listData - the array of Objects to be loaded into the data model

But, I'm not sure how to use it. If I do this:

cDJList = new JList( Object[] gUICDInventory );
cDJList.setVisibleRowCount( 25 );


I get this error message:

C:\Documents and Settings\Sam\GUICDInventory.java:22: '.class' expected
cDJList = new JList( Object[] gUICDInventory );
^
C:\Documents and Settings\Sam\GUICDInventory.java:22: ';' expected
cDJList = new JList( Object[] gUICDInventory );
^
2 errors
Jun 28 '07 #3

10K+
P: 13,264
I read about the constructors and it looks like I need this one:

public JList(Object[] listData) Constructs a JList that displays the elements in the specified array. This constructor just delegates to the ListModel constructor.

Parameters:
listData - the array of Objects to be loaded into the data model

But, I'm not sure how to use it. If I do this:

cDJList = new JList( Object[] gUICDInventory );
cDJList.setVisibleRowCount( 25 );


I get this error message:

C:\Documents and Settings\Sam\GUICDInventory.java:22: '.class' expected
cDJList = new JList( Object[] gUICDInventory );
^
C:\Documents and Settings\Sam\GUICDInventory.java:22: ';' expected
cDJList = new JList( Object[] gUICDInventory );
^
2 errors
Don't try to guess how to use it, read the swing tutorial.
Jun 29 '07 #4

Post your reply

Sign in to post your reply or Sign up for a free account.