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