数字格式异常:对于输入字符串:"Regular (Php 100)"



程序本应计算单选按钮、复选框和组合框所指示的整数,但当我提交它时,它总是返回一个错误。

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "Regular (Php 100)"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
at java.base/java.lang.Integer.parseInt(Integer.java:668)
at java.base/java.lang.Integer.parseInt(Integer.java:786)
at Marte_project$5.actionPerformed(Marte_project.java:157)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)

public Marte_project() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 665, 703);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

JLabel lblNewLabel = new JLabel("Marte's Pizza Project");
lblNewLabel.setFont(new Font("Black Clover Font", Font.BOLD, 60));
lblNewLabel.setBounds(80, 36, 486, 60);
contentPane.add(lblNewLabel);

JLabel lblNewLabel_1 = new JLabel("Order");
lblNewLabel_1.setFont(new Font("Tahoma", Font.PLAIN, 20));
lblNewLabel_1.setBounds(161, 118, 51, 25);
contentPane.add(lblNewLabel_1);

JPanel panel = new JPanel();
panel.setBounds(193, 152, 234, 169);
contentPane.add(panel);
panel.setLayout(null);

//start radio button
JRadioButton rdb_regular = new JRadioButton("Regular (Php 100)");
rdb_regular.setSelected(true);
JRadioButton rdb_special = new JRadioButton("Special (Php 120)");
JRadioButton rdb_super = new JRadioButton("Super Special (200)");

rdb_regular.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(rdb_regular.isSelected()) {
rdb_special.setSelected(false);
rdb_super.setSelected(false);
}
}
});
rdb_regular.setFont(new Font("Tahoma", Font.PLAIN, 20));
rdb_regular.setBounds(25, 18, 187, 33);
panel.add(rdb_regular);


rdb_special.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(rdb_special.isSelected()) {
rdb_regular.setSelected(false);
rdb_super.setSelected(false);
}
}
});
rdb_special.setFont(new Font("Tahoma", Font.PLAIN, 20));
rdb_special.setBounds(25, 68, 181, 33);
panel.add(rdb_special);


rdb_super.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(rdb_super.isSelected()) {
rdb_regular.setSelected(false);
rdb_special.setSelected(false);
}
}
});
rdb_super.setFont(new Font("Tahoma", Font.PLAIN, 20));
rdb_super.setBounds(25, 114, 199, 33);
panel.add(rdb_super);

JLabel lblNewLabel_2 = new JLabel("Add-ons");
lblNewLabel_2.setFont(new Font("Tahoma", Font.PLAIN, 20));
lblNewLabel_2.setBounds(161, 340, 73, 25);
contentPane.add(lblNewLabel_2);

JCheckBox ckb_cheese = new JCheckBox("Cheese (+Php 10)");
ckb_cheese.setFont(new Font("Tahoma", Font.PLAIN, 20));
ckb_cheese.setBounds(214, 372, 187, 33);
contentPane.add(ckb_cheese);

JCheckBox ckb_bacon = new JCheckBox("Bacon (+Php 15)");
ckb_bacon.setFont(new Font("Tahoma", Font.PLAIN, 20));
ckb_bacon.setBounds(214, 408, 177, 33);
contentPane.add(ckb_bacon);

JCheckBox ckb_pepperoni = new JCheckBox("Pepperoni (+Php 20)");
ckb_pepperoni.setFont(new Font("Tahoma", Font.PLAIN, 20));
ckb_pepperoni.setBounds(214, 444, 211, 33);
contentPane.add(ckb_pepperoni);

JLabel lblNewLabel_3 = new JLabel("Membership");
lblNewLabel_3.setFont(new Font("Tahoma", Font.PLAIN, 20));
lblNewLabel_3.setBounds(161, 495, 108, 25);
contentPane.add(lblNewLabel_3);

JComboBox cb_member = new JComboBox();
cb_member.setFont(new Font("Tahoma", Font.PLAIN, 20));
cb_member.setModel(new DefaultComboBoxModel(new String[] {"Yes", "No"}));
cb_member.setBounds(300, 492, 133, 31);
contentPane.add(cb_member);

JLabel lblNewLabel_4 = new JLabel("Quantity");
lblNewLabel_4.setFont(new Font("Tahoma", Font.PLAIN, 20));
lblNewLabel_4.setBounds(137, 541, 75, 25);
contentPane.add(lblNewLabel_4);

txt_qtty = new JTextField();
txt_qtty.setBounds(255, 544, 207, 26);
contentPane.add(txt_qtty);
txt_qtty.setColumns(10);

JButton submit = new JButton("Submit");
submit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int cheese, bacon, pepperoni, quantity,result,price, discount;
String total = "";
price = Integer.parseInt(rdb_regular.getText());
price = Integer.parseInt(rdb_special.getText());
price = Integer.parseInt(rdb_super.getText());

cheese = Integer.parseInt(ckb_cheese.getText());
bacon = Integer.parseInt(ckb_bacon.getText());
pepperoni = Integer.parseInt(ckb_pepperoni.getText());
discount = Integer.parseInt((String)cb_member.getSelectedItem());

if(rdb_regular.isSelected()) {
price = 100;
}
else if (rdb_special.isSelected()) {    
price = 120;
}
else {
price = 200;
}

if(ckb_cheese.isSelected()) {
cheese = 10;
}
if (ckb_bacon.isSelected()) {
bacon = 15;
}
if (ckb_pepperoni.isSelected()){
pepperoni = 20;
}

cb_member.getSelectedItem();
if(cb_member.getSelectedItem().toString().equals("Yes")) {          
discount = -5;
}

quantity = Integer.parseInt(txt_qtty.getText());
result = price + cheese + bacon + pepperoni + discount;
total = "The total amount is " + result * quantity; 

JOptionPane.showMessageDialog(null, total);
}

});
submit.setFont(new Font("Tahoma", Font.PLAIN, 20));
submit.setBounds(251, 590, 140, 40);
contentPane.add(submit);
}
}

您需要传递一个有效的数字。否则你会得到这样的NumberFormatException

Regular (Php 100)不是有效的数字。

最新更新