| | |
Getting my data back from my JList
Please support our Java advertiser: Programming Forums - DaniWeb Sister Site
Thread Solved |
Looks like I only made it a day and a half without a new question. I am not sure if that is good or bad.
I have everything just about the way I want it. I am now putting new buttons in to my GUI to manipulate everything put in my JList.
I added all the buttons to the GUI, put the architecture in so that I can just go in, one by one and edit them for functionality.
ADD works fine.
PREV is giving me an issue, and I am not even sure what it is.
I just want it to pull the last cd up so that I can look at it. Populate the given fields for possible modification should I decide to change or update anything.
What I have coded compiles, but after entering several cds, if I hit PREV I get:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:468)
at java.lang.Integer.parseInt(Integer.java:497)
at Inventory2.btnPrevActionPerformed(Inventory2.java:280)
at Inventory2.access$100(Inventory2.java:10)
at Inventory2$2.actionPerformed(Inventory2.java:155)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:5517)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
at java.awt.Component.processEvent(Component.java:5282)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3984)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3819)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1791)
at java.awt.Component.dispatchEvent(Component.java:3819)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
This seems to indicate an issue with Integer vs Text or something like that with those lines. I do not understand that. Why would those lines be compatible in my ADD but not with the PREV.
I do not even know what problem I am trying to solve now.
Here is the complete class.
I have everything just about the way I want it. I am now putting new buttons in to my GUI to manipulate everything put in my JList.
I added all the buttons to the GUI, put the architecture in so that I can just go in, one by one and edit them for functionality.
ADD works fine.
PREV is giving me an issue, and I am not even sure what it is.
I just want it to pull the last cd up so that I can look at it. Populate the given fields for possible modification should I decide to change or update anything.
What I have coded compiles, but after entering several cds, if I hit PREV I get:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:468)
at java.lang.Integer.parseInt(Integer.java:497)
at Inventory2.btnPrevActionPerformed(Inventory2.java:280)
at Inventory2.access$100(Inventory2.java:10)
at Inventory2$2.actionPerformed(Inventory2.java:155)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:5517)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
at java.awt.Component.processEvent(Component.java:5282)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3984)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3819)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1791)
at java.awt.Component.dispatchEvent(Component.java:3819)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
This seems to indicate an issue with Integer vs Text or something like that with those lines. I do not understand that. Why would those lines be compatible in my ADD but not with the PREV.
I do not even know what problem I am trying to solve now.
Here is the complete class.
Java Syntax (Toggle Plain Text)
import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.text.*; import java.lang.*; public class Inventory2 extends JFrame { private JLabel cdNameLabel; // name label private JLabel artistLabel; // item number label private JLabel nstockLabel; // units in stock label private JLabel priceLabel; // price each label private JLabel itemLabel; // item number label private JTextField cdNameField; // name display private JTextField artistField; // artist display private JFormattedTextField nstockField; // units in stock display private JFormattedTextField priceField; // price each display private JTextField itemField; // item number display private NumberFormat nstockFormat; // format field and parse numbers private NumberFormat priceFormat; // format field and parse numbers private JButton btnAdd; // first button private JButton btnPrev; // previous button private JButton btnNext; // next button private JButton btnDel; // last button private JButton btnFirst; // first button private JButton btnLast; // last button private JButton btnModify; // modify button private JButton btnSave; // save button private JButton btnSearch; // search button private JPanel buttonJPanel; // JPanle to hold buttons private JPanel fieldJPanel; // JPanel to hold labels and displays private JPanel fontJPanel; // JPanel to display logo private int currCD; private double total = 0; // variable for total inventory private JList Inventorylist; // JList to take place of old array private DefaultListModel listModel; private JScrollPane jScrollPanel; private float Invtotal = .00f; public Inventory2() // create class and method to perform GUI build { initComponents(); } private void initComponents() { // create label names cdNameLabel = new JLabel("CD Name:"); artistLabel = new JLabel("Artist:"); nstockLabel = new JLabel("In Stock:"); priceLabel = new JLabel("Each Item Cost:$"); itemLabel = new JLabel("Item Number:"); // initial fields cdNameField = new JTextField(25); cdNameField.setEditable(true); artistField = new JTextField(15); artistField.setEditable(true); nstockField = new JFormattedTextField(nstockFormat); nstockField.setEditable(true); nstockField.setColumns(5); priceField = new JFormattedTextField(priceFormat); priceField.setEditable(true); priceField.setColumns(5); itemField = new JTextField(4); itemField.setEditable(true); // JList jScrollPanel = new JScrollPane(); Inventorylist = new JList(); currCD = 0; // buttons btnAdd = new JButton(); btnNext = new JButton(); btnPrev = new JButton(); btnDel = new JButton(); btnLast = new JButton(); btnFirst = new JButton(); btnModify = new JButton(); btnSave = new JButton(); btnSearch = new JButton(); getContentPane().setLayout(new FlowLayout()); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); // place textFields and labels //artist artistLabel.setText("Artist"); getContentPane().add(artistLabel); artistField.setMinimumSize(new Dimension(70,20)); artistField.setPreferredSize(new Dimension(70,20)); getContentPane().add(artistField); // cd name cdNameLabel.setText("CD Name"); getContentPane().add(cdNameLabel); cdNameField.setMinimumSize(new Dimension(70,20)); cdNameField.setPreferredSize(new Dimension(70,20)); getContentPane().add(cdNameField); // copies in stock nstockLabel.setText("Copies In Stock"); getContentPane().add(nstockLabel); nstockField.setMinimumSize(new Dimension(5,20)); nstockField.setPreferredSize(new Dimension(5,20)); getContentPane().add(nstockField); //price of cd priceLabel.setText("Price"); getContentPane().add(priceLabel); priceField.setMinimumSize(new Dimension(20,20)); priceField.setPreferredSize(new Dimension(20,20)); getContentPane().add(priceField); //item number of cd itemLabel.setText("Item Number"); getContentPane().add(itemLabel); itemField.setMinimumSize(new Dimension(5,20)); itemField.setPreferredSize(new Dimension(5,20)); getContentPane().add(itemField); // add listeners btnAdd.setText("Add"); btnAdd.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { btnAddActionPerformed(evt); } }); getContentPane().add(btnAdd); // PREVIOUS btnPrev.setText("Previous"); btnPrev.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { btnPrevActionPerformed(evt); } }); getContentPane().add(btnPrev); // NEXT btnNext.setText("Next"); btnNext.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { btnAddActionPerformed(evt); } }); getContentPane().add(btnNext); // SEARCH btnSearch.setText("Search"); btnSearch.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { btnAddActionPerformed(evt); } }); getContentPane().add(btnSearch); // FIRST btnFirst.setText("First"); btnFirst.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { btnAddActionPerformed(evt); } }); getContentPane().add(btnFirst); // LAST btnLast.setText("Last"); btnLast.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { btnAddActionPerformed(evt); } }); getContentPane().add(btnLast); // MODIFY btnModify.setText("Modify"); btnModify.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { btnAddActionPerformed(evt); } }); getContentPane().add(btnModify); // SAVE btnSave.setText("Save"); btnSave.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { btnAddActionPerformed(evt); } }); getContentPane().add(btnSave); // DELETE btnDel.setText("Delete"); btnDel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { btnAddActionPerformed(evt); } }); getContentPane().add(btnDel); // new Jlist model listModel = new DefaultListModel(); Inventorylist.setModel(listModel); jScrollPanel.setViewportView(Inventorylist); getContentPane().add(jScrollPanel); pack(); }// close private void btnAddActionPerformed(ActionEvent evt) { // Create cd to add CdwArtist newCD = new CdwArtist(); newCD.setArtist(artistField.getText()); newCD.setName(cdNameField.getText()); newCD.setItemno(Integer.parseInt(itemField.getText())); newCD.setNstock(Integer.parseInt(nstockField.getText())); newCD.setPrice(Float.parseFloat(priceField.getText())); // Add cd to list listModel.addElement(newCD); currCD = listModel.size()-1; // sets currCD to added index // Clear the text fields after add artistField.setText(null); cdNameField.setText(null); itemField.setText(null); nstockField.setText(null); priceField.setText(null); }// end ADD private void btnPrevActionPerformed(ActionEvent evt) { // Grab Previous cd CdwArtist newCD = (CdwArtist) listModel.get( currCD-- ); newCD.setArtist(artistField.getText()); newCD.setName(cdNameField.getText()); newCD.setItemno(Integer.parseInt(itemField.getText())); newCD.setNstock(Integer.parseInt(nstockField.getText())); newCD.setPrice(Float.parseFloat(priceField.getText())); }// end PREV // run it public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Inventory2().setVisible(true); } }); } } // close class
Last edited by no1zson; Jul 29th, 2007 at 11:07 pm.
I never drew first, but I drew first blood.
I'm no ones son, unforgiven.
I'm no ones son, unforgiven.
Can you please provide remining classes for this application. So far I do no see any problems here so copaling whole thing would be better
Last edited by peter_budo; Jul 30th, 2007 at 4:53 am.
Learn to see in another's calamity the ills which you should avoid.
Publilius Syrus
(~100 BC)
LJC - London Java Community, Graduate & Undergraduate Software Development Community, JAVAWUG (Java Web User Group), The London Android Group
Publilius Syrus
(~100 BC)
LJC - London Java Community, Graduate & Undergraduate Software Development Community, JAVAWUG (Java Web User Group), The London Android Group
Peter, here is my first class
And the class that extends it
That is a good question Pooven. One I had not even considered until you asked it. I want to go back one record at a time, when I hit the very first record I would like to just loop around to the last record and start the process over again. Any suggestions?
Java Syntax (Toggle Plain Text)
import java.util.*; import java.text.*; import java.lang.Comparable; public class Compactdisk implements Comparable {// begin class //InventoryCD class has 5 fields public String name; // Name of cd public float price; // price of cd public int itemno; // item number of cd public int nstock; // how many units in stock private int i; // cd counter for array public float value; // value for single cd inventory //Compact disk class constructor public Compactdisk() // 4 fields need to be set up { name = ""; price = .00f; itemno = 0; nstock = 0; i = 0; value = .00f; } // set values public void setName(String diskName) { name = diskName; } public void setPrice(float cdPrice) { price = cdPrice; } public void setItemno(int cdItemno) { itemno = cdItemno; } public void setNstock(int cdStock) { nstock = cdStock; } public void setValue(float cdValue) { value = cdValue; } public void seti(int Count) { i = Count; } // return values public String getName() { return (name); } public float getPrice() { return (price); } public int getItemno() { return (itemno); } public int getNstock() { return (nstock); } public int compareTo(Object in) { return ((Comparable)name.toLowerCase()).compareTo((Comparable)((Compactdisk)in).getName().toLowerCase()); } // returns indivudual inventory value for a disk public float getValue() { return (price * nstock); } }// end class
Java Syntax (Toggle Plain Text)
import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.text.*; import java.lang.*; public class CdwArtist extends Compactdisk { private String artist; // artist performing on cd private float restock; // restocking percentage private float total; // inventory stock after restock private float invtotal; // total inventory value of all cds DecimalFormat formatter = new DecimalFormat("$0.00"); // Artist constructor public CdwArtist() { artist = ""; restock = .05f; total = .00f; invtotal = .00f; } public CdwArtist(String in) { artist=in; } // get values public void setArtist(String in) { artist=in; } public void setRestock(float cdRestock) { restock = cdRestock; } public void setTotal(float cdtotal) { total = cdtotal; } public void setInvtotal(float cdinvtotal) { invtotal = cdinvtotal; } // return value public String getArtist() { return (artist); } // returns indivudual inventory value for a disk public float getTotal() { return(price * nstock)+((price * nstock)* restock); } //new toString public String toString() { return "<html>Artist: " + artist + " CD Name: " + name + "<br> Item Number: " + itemno + " Price: " + formatter.format(getPrice()) + "<br> In Stock: " + nstock + " Stock Value: " + formatter.format(getValue()) + "<br> Restocking Fee: $" + restock + "<br> Total Inventory Value For Item: " + formatter.format(getTotal())+ "<hr></html>"; } } //End Class
That is a good question Pooven. One I had not even considered until you asked it. I want to go back one record at a time, when I hit the very first record I would like to just loop around to the last record and start the process over again. Any suggestions?
I never drew first, but I drew first blood.
I'm no ones son, unforgiven.
I'm no ones son, unforgiven.
•
•
•
•
One I had not even considered until you asked it. I want to go back one record at a time, when I hit the very first record I would like to just loop around to the last record and start the process over again. Any suggestions?
Your parsing problem is clear from the exception message:
It's trying to parse an int from an empty string. If you look at the code in your previous handler, you have it backward. You want to set the text to the value from the object - not the other way around.
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""It's trying to parse an int from an empty string. If you look at the code in your previous handler, you have it backward. You want to set the text to the value from the object - not the other way around.
•
•
•
•
Well, think about your index in relation to the list. If the decrement puts it past 0 you know what you want the next value to be and listModel has a size() function to help you out.
For CurrCD < 0 listModel.Last();
bet a better option?
Either way, I am not sure of the syntax for the actual command.
What is the "return" or "get" command, I guess.
[CODE][ // Grab Previous cd
CdwArtist newCD = (CdwArtist) listModel.get( currCD-- );
For currCD < 0 listModel.size(99);
newCD.setArtist(artistField.getText());
newCD.setName(cdNameField.getText());/CODE]
just does not look right to me.
Of course it is all mute if I cannot find the problem with the PREV button anyways, cuz it does not work now to begin with!
I never drew first, but I drew first blood.
I'm no ones son, unforgiven.
I'm no ones son, unforgiven.
Java Syntax (Toggle Plain Text)
if (--currCD<0) currCD = listModel.size()-1;
listModel.get(currCD); would work just fine. •
•
•
•
Your parsing problem is clear from the exception message:Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
It's trying to parse an int from an empty string. If you look at the code in your previous handler, you have it backward. You want to set the text to the value from the object - not the other way around.
Java Syntax (Toggle Plain Text)
newCD.setItemno(Integer.parseInt(itemField.getText()));
Will you show me an example of how to put it back?
Java Syntax (Toggle Plain Text)
newCD.setText(Integer.parseInt(getItemno()));
I never drew first, but I drew first blood.
I'm no ones son, unforgiven.
I'm no ones son, unforgiven.
You simply call setText() on the textfield with the value from the cd object.
Java Syntax (Toggle Plain Text)
itemField.setText( newCD.getItemno());
![]() |
Similar Threads
Other Threads in the Java Forum
- Previous Thread: compiler from microjava to java....NEED HELP
- Next Thread: how to find the version details?
| Thread Tools | Search this Thread |
911 addball android api append applet application apps array arrays automation binary bluetooth businessintelligence button card chat class classes client code collision component crashcourse css database eclipse ee error event exception fractal free game gis givemetehcodez graphics gui html ide image input integer integration j2me java javadoc javafx javaprojects jni jpanel julia jvm key linux list loan loop machine map method methods migrate mobile netbeans newbie nls oracle output phone physics print problem program programming project radio recursion scanner screen server service set size sms socket software sort sql string swing textfield threads time transfer tree trolltech ubuntu utility windows






