0

Код должен получить заказ и его цену и сохранить их в соответствующих ArrayLists.NumberFormatException при использовании JFrame

public class SetMenu0{ 

    private double price; 
    private int size; 
    private String output; 
    private String priceOutput; 
    String next; 
    JTextField orderIn; 
    JTextField priceIn; 

    private JFrame orderInput; 

    JPanel txtFldPanel; 
    JPanel btnPanel; 

    ArrayList orderList = new ArrayList<String>(); 
    ArrayList priceList = new ArrayList<Double>(); 

    public SetMenu0() 
    { 
     orderInput = new JFrame(); 
     orderInput.setTitle("Input Order and Price"); 
     orderInput.setSize(200,350); 
     orderInput.getContentPane(); 
     orderInput.setLayout(new BorderLayout()); 
     orderInput.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     JPanel txtFldPanel = new JPanel(); 
     orderIn = new JTextField(10); 
     priceIn = new JTextField(5); 
     txtFldPanel.add(orderIn); 
     txtFldPanel.add(priceIn); 

     JPanel btnPanel = new JPanel(); 
     JButton addBtn = new JButton("ADD"); 
     btnPanel.add(addBtn); 
     addBtn.addActionListener(new ButtonListener()); 
     addBtn.setActionCommand("add"); 
     JButton fnshBtn = new JButton("FINISH"); 
     btnPanel.add(fnshBtn); 
     addBtn.addActionListener(new ButtonListener()); 
     fnshBtn.setActionCommand("fnsh"); 

     size = orderList.size(); 

     Container cont = orderInput.getContentPane(); 
     cont.add(txtFldPanel,BorderLayout.NORTH); 
     cont.add(btnPanel,BorderLayout.SOUTH); 

     orderInput.pack(); 
    } 

    private class ButtonListener implements ActionListener 
    { 
     public void actionPerformed(ActionEvent e) 
     { 
      String actionEnter = e.getActionCommand(); 
      if(actionEnter.equals("add")) 
      { 
       orderList.add(orderIn.getText()); 
       priceList.add(Double.parseDouble(priceIn.getText())); 
       orderIn.setText(""); 
       priceIn.setText(""); 
      } 
      else if(actionEnter.equals("fnsh")) 
      { 
       orderInput.dispose(); 
      } 
     } 
    } 

    public JFrame getFrame() 
    { 
     return orderInput; 
    } 

    public ArrayList getOrd() 
    { 
     return orderList; 
    } 

    public ArrayList getPri() 
    { 
     return priceList; 
    } 

    public int getSize() 
    { 
     return size; 
    } 

} 

Когда я нажимаю кнопку ADD, он показывает исключение NumberFormatException. Почему это? Я мог бы добавить остальную часть кода из основного, но почему он не сохраняет в ArrayList?

Это ошибка: java.lang.NumberFormatException: Для ввода строки: "" в java.lang.NumberFormatException.forInputString (Unknown Source) в java.lang.Integer.parseInt (Unknown Source) в java.lang.Integer.parseInt (Unknown Source) в com.howtodoinjava.demo.poi.SetMenu0 $ ButtonListener.actionPerformed (SetMenu0.java:84) в javax.swing.AbstractButton.fireActionPerformed (Unknown Source) в javax. swing.AbstractButton $ Handler.actionPerformed (Неизвестный источник) at javax.swing.DefaultButtonModel.fireActionPerformed (Неизвестный источник) at javax.swing.DefaultButtonModel.setPressed (Unknown Sou RCE) в javax.swing.plaf.basic.BasicButtonListener.mouseReleased (Unknown Source) в java.awt.Component.processMouseEvent (Unknown Source) в javax.swing.JComponent.processMouseEvent (Unknown Source) в java.awt .Component.processEvent (Unknown Source) в java.awt.Container.processEvent (Unknown Source) в java.awt.Component.dispatchEventImpl (Unknown Source) в java.awt.Container.dispatchEventImpl (Unknown Source) на Java .awt.Component.dispatchEvent (Неизвестный источник) at java.awt.LightweightDispatcher.retargetMouseEvent (Неизвестный источник) на java.awt.LightweightDispatcher.processMouseEvent (Неизвестный источник) на java.awt.LightweightDispatcher.dis patchEvent (Unknown Source) в java.awt.Container.dispatchEventImpl (Unknown Source) в java.awt.Window.dispatchEventImpl (Unknown Source) в java.awt.Component.dispatchEvent (Unknown Source) в java.awt. EventQueue.dispatchEventImpl (Unknown Source) в java.awt.EventQueue.access $ 400 (Unknown Source) в java.awt.EventQueue $ 3.run (Unknown Source) в java.awt.EventQueue $ 3.run (Unknown Source) в java.security.AccessController.doPrivileged (Native Method) в java.security.ProtectionDomain $ 1.doIntersectionPrivilege (Unknown Source) в java.security.ProtectionDomain $ 1.doIntersectionPrivilege (Unknown Source) в java.awt.EventQueue $ 4.run (Неизвестный S сходный код) в java.awt.EventQueue $ 4.run (Unknown Source) в java.security.AccessController.doPrivileged (Native Method) в java.security.ProtectionDomain $ 1.doIntersectionPrivilege (Unknown Source) в java.awt.EventQueue .dispatchEvent (Unknown Source) в java.awt.EventDispatchThread.pumpOneEventForFilters (Unknown Source) в java.awt.EventDispatchThread.pumpEventsForFilter (Unknown Source) в java.awt.EventDispatchThread.pumpEventsForHierarchy (Unknown Source) в java.awt .EventDispatchThread.pumpEvents (Неизвестный источник) at java.awt.EventDispatchThread.pumpEvents (Неизвестный источник) на java.awt.EventDispatchThread.пробег (Unknown Source)

+0

Исключение должно показать вам, какая линия возникла проблема. – keuleJ

+0

Простите, вот и все, что я получил – user3752231

+0

, нет. просто переводит меня в окно, в котором говорится, что точка исключения исключений Java – user3752231

ответ

1

Это, вероятно, из-за этой линии:

priceList.add(Double.parseDouble(priceIn.getText())); 

Вы хотите, чтобы убедиться, что priceIn текстовое поле содержит число, прежде чем пытаться разобрать текст.

+0

, я делаю ввод числа. 25, чтобы быть точным каждый раз – user3752231

+0

В этом случае вы можете добавить более подробную информацию об исключении, которое вы получаете? – PeterK

0

Вы должны использовать (на кнопку добавить щелчок)

if(!(priceIn.isEmpty || orderIn.isEmpty)){ 
    //Do your adding 
} 

Этот код проверяет, есть ли что-то в JTextFiels

Смежные вопросы