gpt4 book ai didi

java - 使用 JFrame 时出现 NumberFormatException

转载 作者:行者123 更新时间:2023-12-01 12:25:39 28 4
gpt4 key购买 nike

代码应该获取订单及其价格并将它们保存在各自的 ArrayList 中。

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;
}

}

当我按下“添加”按钮时,它显示一个 NumberFormatException。为什么是这样?我可以添加主代码中的其余代码,但为什么它没有保存在 ArrayList 中?

这是错误: java.lang.NumberFormatException:对于输入字符串:“” 在 java.lang.NumberFormatException.forInputString(来源未知) 在 java.lang.Integer.parseInt(来源未知) 在 java.lang.Integer.parseInt(来源未知) 在 com.howtodoinjava.demo.poi.SetMenu0$ButtonListener.actionPerformed(SetMenu0.java:84) 在 javax.swing.AbstractButton.fireActionPerformed(来源未知) 在 javax.swing.AbstractButton$Handler.actionPerformed(来源未知) 在 javax.swing.DefaultButtonModel.fireActionPerformed(来源未知) 在 javax.swing.DefaultButtonModel.setPressed(来源未知) 在 javax.swing.plaf.basic.BasicButtonListener.mouseReleased(来源未知) 在 java.awt.Component.processMouseEvent(来源未知) 在 javax.swing.JComponent.processMouseEvent(来源未知) 在 java.awt.Component.processEvent(来源未知) 在 java.awt.Container.processEvent(来源未知) 在 java.awt.Component.dispatchEventImpl(来源未知) 在 java.awt.Container.dispatchEventImpl(来源未知) 在 java.awt.Component.dispatchEvent(来源未知) 在 java.awt.LightweightDispatcher.retargetMouseEvent(来源未知) 在 java.awt.LightweightDispatcher.processMouseEvent(来源未知) 在 java.awt.LightweightDispatcher.dispatchEvent(来源未知) 在 java.awt.Container.dispatchEventImpl(来源未知) 在 java.awt.Window.dispatchEventImpl(来源未知) 在 java.awt.Component.dispatchEvent(来源未知) 在 java.awt.EventQueue.dispatchEventImpl(来源未知) 在 java.awt.EventQueue.access$400(来源不明) 在 java.awt.EventQueue$3.run(来源未知) 在 java.awt.EventQueue$3.run(来源未知) 在 java.security.AccessController.doPrivileged( native 方法) 在 java.security.ProtectionDomain$1.doIntersectionPrivilege(来源未知) 在 java.security.ProtectionDomain$1.doIntersectionPrivilege(来源未知) 在 java.awt.EventQueue$4.run(来源未知) 在 java.awt.EventQueue$4.run(来源未知) 在 java.security.AccessController.doPrivileged( native 方法) 在 java.security.ProtectionDomain$1.doIntersectionPrivilege(来源未知) 在 java.awt.EventQueue.dispatchEvent(来源未知) 在 java.awt.EventDispatchThread.pumpOneEventForFilters(来源未知) 在 java.awt.EventDispatchThread.pumpEventsForFilter(来源未知) 在 java.awt.EventDispatchThread.pumpEventsForHierarchy(来源未知) 在 java.awt.EventDispatchThread.pumpEvents(来源未知) 在 java.awt.EventDispatchThread.pumpEvents(来源未知) 在 java.awt.EventDispatchThread.run(来源未知)

最佳答案

这可能是由于这一行:

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

在尝试解析文本之前,您需要确保priceIn 文本字段包含一个数字。

关于java - 使用 JFrame 时出现 NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26358390/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com