I am a beginner here, still in my first Java class, so I hope this question is not so simple as to offend anyone, but I am finishing up my cd inventory program.
Adding some GUI buttons to manipulate data in my JList.
JList is beyond the scope of my class so I am finding help hard to come by.
I only have two weeks of class left, so it is too late to go back to my array now.
It is sink or swim with what I have. :o)
For my question ... I have an ADD button that works like a charm, populates JList from my fields. I am now working on the PREV button to pull the information back to the fields from the previous cd. I have coded and coded but I am obviously doing something wrong because it keeps erroring upon execution.
Compiles fine, but will not run. Keep getting:
Exception in thread "AWT-EventQueue-0" java.lang.Numbe rFormatExceptio n: For input string: ""
at java.lang.Numbe rFormatExceptio n.forInputStrin g(NumberFormatE xception.java:4 8)
at java.lang.Integ er.parseInt(Int eger.java:468)
at java.lang.Integ er.parseInt(Int eger.java:497)
at Inventory2.btnA ddActionPerform ed(Inventory2.j ava:255)
at Inventory2.acce ss$000(Inventor y2.java:10)
at Inventory2$2.ac tionPerformed(I nventory2.java: 155)
at javax.swing.Abs tractButton.fir eActionPerforme d(AbstractButto n.java:1849)
at javax.swing.Abs tractButton$Han dler.actionPerf ormed(AbstractB utton.java:2169 )
at javax.swing.Def aultButtonModel .fireActionPerf ormed(DefaultBu ttonModel.java: 420)
at javax.swing.Def aultButtonModel .setPressed(Def aultButtonModel .java:258)
at javax.swing.pla f.basic.BasicBu ttonListener.mo useReleased(Bas icButtonListene r.java:236)
at java.awt.Compon ent.processMous eEvent(Componen t.java:5517)
at javax.swing.JCo mponent.process MouseEvent(JCom ponent.java:313 5)
at java.awt.Compon ent.processEven t(Component.jav a:5282)
at java.awt.Contai ner.processEven t(Container.jav a:1966)
at java.awt.Compon ent.dispatchEve ntImpl(Componen t.java:3984)
at java.awt.Contai ner.dispatchEve ntImpl(Containe r.java:2024)
at java.awt.Compon ent.dispatchEve nt(Component.ja va:3819)
at java.awt.Lightw eightDispatcher .retargetMouseE vent(Container. java:4212)
at java.awt.Lightw eightDispatcher .processMouseEv ent(Container.j ava:3892)
at java.awt.Lightw eightDispatcher .dispatchEvent( Container.java: 3822)
at java.awt.Contai ner.dispatchEve ntImpl(Containe r.java:2010)
at java.awt.Window .dispatchEventI mpl(Window.java :1791)
at java.awt.Compon ent.dispatchEve nt(Component.ja va:3819)
at java.awt.EventQ ueue.dispatchEv ent(EventQueue. java:463)
at java.awt.EventD ispatchThread.p umpOneEventForH ierarchy(EventD ispatchThread.j ava:242)
at java.awt.EventD ispatchThread.p umpEventsForHie rarchy(EventDis patchThread.jav a:163)
at java.awt.EventD ispatchThread.p umpEvents(Event DispatchThread. java:157)
at java.awt.EventD ispatchThread.p umpEvents(Event DispatchThread. java:149)
at java.awt.EventD ispatchThread.r un(EventDispatc hThread.java:11 0)
Here is my code. Everything works except the Previous Button action event.
Any suggestions?
Adding some GUI buttons to manipulate data in my JList.
JList is beyond the scope of my class so I am finding help hard to come by.
I only have two weeks of class left, so it is too late to go back to my array now.
It is sink or swim with what I have. :o)
For my question ... I have an ADD button that works like a charm, populates JList from my fields. I am now working on the PREV button to pull the information back to the fields from the previous cd. I have coded and coded but I am obviously doing something wrong because it keeps erroring upon execution.
Compiles fine, but will not run. Keep getting:
Exception in thread "AWT-EventQueue-0" java.lang.Numbe rFormatExceptio n: For input string: ""
at java.lang.Numbe rFormatExceptio n.forInputStrin g(NumberFormatE xception.java:4 8)
at java.lang.Integ er.parseInt(Int eger.java:468)
at java.lang.Integ er.parseInt(Int eger.java:497)
at Inventory2.btnA ddActionPerform ed(Inventory2.j ava:255)
at Inventory2.acce ss$000(Inventor y2.java:10)
at Inventory2$2.ac tionPerformed(I nventory2.java: 155)
at javax.swing.Abs tractButton.fir eActionPerforme d(AbstractButto n.java:1849)
at javax.swing.Abs tractButton$Han dler.actionPerf ormed(AbstractB utton.java:2169 )
at javax.swing.Def aultButtonModel .fireActionPerf ormed(DefaultBu ttonModel.java: 420)
at javax.swing.Def aultButtonModel .setPressed(Def aultButtonModel .java:258)
at javax.swing.pla f.basic.BasicBu ttonListener.mo useReleased(Bas icButtonListene r.java:236)
at java.awt.Compon ent.processMous eEvent(Componen t.java:5517)
at javax.swing.JCo mponent.process MouseEvent(JCom ponent.java:313 5)
at java.awt.Compon ent.processEven t(Component.jav a:5282)
at java.awt.Contai ner.processEven t(Container.jav a:1966)
at java.awt.Compon ent.dispatchEve ntImpl(Componen t.java:3984)
at java.awt.Contai ner.dispatchEve ntImpl(Containe r.java:2024)
at java.awt.Compon ent.dispatchEve nt(Component.ja va:3819)
at java.awt.Lightw eightDispatcher .retargetMouseE vent(Container. java:4212)
at java.awt.Lightw eightDispatcher .processMouseEv ent(Container.j ava:3892)
at java.awt.Lightw eightDispatcher .dispatchEvent( Container.java: 3822)
at java.awt.Contai ner.dispatchEve ntImpl(Containe r.java:2010)
at java.awt.Window .dispatchEventI mpl(Window.java :1791)
at java.awt.Compon ent.dispatchEve nt(Component.ja va:3819)
at java.awt.EventQ ueue.dispatchEv ent(EventQueue. java:463)
at java.awt.EventD ispatchThread.p umpOneEventForH ierarchy(EventD ispatchThread.j ava:242)
at java.awt.EventD ispatchThread.p umpEventsForHie rarchy(EventDis patchThread.jav a:163)
at java.awt.EventD ispatchThread.p umpEvents(Event DispatchThread. java:157)
at java.awt.EventD ispatchThread.p umpEvents(Event DispatchThread. java:149)
at java.awt.EventD ispatchThread.r un(EventDispatc hThread.java:11 0)
Here is my code. Everything works except the Previous Button action event.
Any suggestions?
Code:
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) { btnAddActionPerformed(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
Comment