我有一个处理按钮事件的问题。我正在创建一个程序,让用户选择他们想要的披萨类型,程序计算比萨的价格。我有我的布局设置,但是当选择一个中等比萨饼时,按钮没有处理正确的响应。任何人都可以给我一些建议吗?我在过去的一个小时里查看了我的代码,而我似乎无法看到我正在制作的错误。这是我的代码...Java按钮处理程序
public class Prog9Frame extends JFrame implements ActionListener
{
private JLabel title;
private JLabel size;
private JLabel toppings;
private JComboBox crust;
private JRadioButton mediumRadio;
private JRadioButton largeRadio;
private JRadioButton xLargeRadio;
private JCheckBox pepperoniBox;
private JCheckBox sausageBox;
private JCheckBox mushroomsBox;
private JCheckBox onionsBox;
private JLabel total;
private JTextField totalField;
private JButton submit;
public Prog9Frame()
{
super ("Pizzazz Pizza");
setLayout(new BorderLayout(5,5));
//north region
title = new JLabel ("Pizzazz Pizza", JLabel.CENTER);
add (title, BorderLayout.NORTH);
//west region
JPanel westPanel = new JPanel();
westPanel.setLayout(new BoxLayout(westPanel, BoxLayout.Y_AXIS));
westPanel.add(Box.createRigidArea(new Dimension(25,1)));
size = new JLabel ("Size");
westPanel.add(Box.createVerticalStrut((20)));
westPanel.add(size);
mediumRadio = new JRadioButton("Medium");
westPanel.add(Box.createVerticalStrut(20));
westPanel.add(mediumRadio);
largeRadio = new JRadioButton("Large ");
westPanel.add(Box.createVerticalStrut(20));
westPanel.add(largeRadio);
xLargeRadio = new JRadioButton("X-Large ");
westPanel.add(Box.createVerticalStrut(20));
westPanel.add(xLargeRadio);
add(westPanel, BorderLayout.WEST);
//center region
JPanel centerPanel = new JPanel();
centerPanel.setLayout(new BoxLayout(centerPanel, BoxLayout.Y_AXIS));
toppings = new JLabel ("Toppings");
centerPanel.add(Box.createVerticalStrut((20)));
centerPanel.add(toppings);
pepperoniBox = new JCheckBox("Pepperoni");
centerPanel.add(Box.createVerticalStrut((20)));
centerPanel.add(pepperoniBox);
sausageBox = new JCheckBox("Sausage");
centerPanel.add(Box.createVerticalStrut((20)));
centerPanel.add(sausageBox);
mushroomsBox = new JCheckBox("Mushrooms");
centerPanel.add(Box.createVerticalStrut((20)));
centerPanel.add(mushroomsBox);
onionsBox = new JCheckBox("Onions");
centerPanel.add(Box.createVerticalStrut((20)));
centerPanel.add(onionsBox);
add(centerPanel, BorderLayout.CENTER);
//east region
JPanel eastPanel = new JPanel();
eastPanel.setLayout(new BoxLayout(eastPanel, BoxLayout.Y_AXIS));
eastPanel.add(Box.createHorizontalStrut(20));
eastPanel.add(Box.createVerticalStrut(50));
String[] crustStrings = { "Thin", "Regular", "Deep Dish" };
JComboBox crust = new JComboBox(crustStrings);
eastPanel.add(crust);
eastPanel.add(Box.createVerticalStrut(200));
add(eastPanel, BorderLayout.EAST);
//south region
JPanel southPanel = new JPanel();
southPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
JTextField totalField = new JTextField(10);
southPanel.add(totalField);
JButton submit = new JButton ("Submit");
submit.addActionListener(this);
southPanel.add(submit);
add(southPanel, BorderLayout.SOUTH);
}
//handle button events
public void actionPerformed(ActionEvent event)
{
if (mediumRadio.isSelected())
{
double pizzaMed = 7.95;
totalField.setText(new DecimalFormat("###00.00").format(pizzaMed));
}
}
}
非常感谢!我知道我必须错过简单的事情。我非常感谢帮助 – Mike 2013-05-10 01:29:15