我的代码会执行我想要的所有内容,但它缺少一个关键功能。我希望它取每个方块的值并在输入框中显示它。然后,当用户按总计时,它显示最终价格加7%的税。目前它只是一个错误,但在它之前只是将金额放在总框中而没有实际添加它们。如何正确添加它们?谢谢!这是我的2类文件:
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
public class PizzaOrder
{
private JPanel phone;
public static void main (String[] args)
{
JFrame frame = new JFrame ("Pizza Order");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel phone = new JPanel();
phone.setBorder (BorderFactory.createRaisedBevelBorder());
JTabbedPane tp = new JTabbedPane();
tp.addTab ("Pizza Order", new PizzaGUI());
frame.getContentPane().add(phone);
frame.getContentPane().add(tp);
frame.pack();
frame.pack();frame.setVisible(true);
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class PizzaGUI extends JPanel
{
private JLabel resultLabel;
private JButton button0, button1, button2, button3, button4, button5, button6, button7, button8, button9, buttonclear;
public PizzaGUI()
{
// grid layout
setLayout (new GridLayout (5, 3));
// creates buttons and label
resultLabel = new JLabel (" ");
button0 = new JButton ("Small: 10.00");
button1 = new JButton ("Medium: 14.00");
button2 = new JButton ("Large: 16.00");
button3 = new JButton ("Soda: 2.00");
button4 = new JButton ("Water: 1.50");
button5 = new JButton ("Extra Cheese: 1.50");
button6 = new JButton ("Pepperoni: 1.50");
button7 = new JButton ("Mushroom: 1.50");
button8 = new JButton ("Sausage: 1.50");
button9 = new JButton ("Pepper Onion: 1.50");
buttonclear = new JButton ("Total");
//listeners for each button
button0.addActionListener (new ButtonListener0());
button1.addActionListener (new ButtonListener1());
button2.addActionListener (new ButtonListener2());
button3.addActionListener (new ButtonListener3());
button4.addActionListener (new ButtonListener4());
button5.addActionListener (new ButtonListener5());
button6.addActionListener (new ButtonListener6());
button7.addActionListener (new ButtonListener7());
button8.addActionListener (new ButtonListener8());
button9.addActionListener (new ButtonListener9());
buttonclear.addActionListener(new ButtonListenerT());
//adds all buttons and label
add (resultLabel);
add (button0);
add (button1);
add (button2);
add (button3);
add (button4);
add (button5);
add (button6);
add (button7);
add (button8);
add (button9);
add (buttonclear);
setPreferredSize (new Dimension(720,360));
setBackground (Color.white);
}
//code below is one listener per button
private class ButtonListener0 implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
resultLabel.setText(resultLabel.getText() + "10.00");
}
}
private class ButtonListener1 implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
resultLabel.setText(resultLabel.getText() + "14.00");
}
}
private class ButtonListener2 implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
resultLabel.setText(resultLabel.getText() + "16.00");
}
}
private class ButtonListener3 implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
resultLabel.setText(resultLabel.getText() + "2.00");
}
}
private class ButtonListener4 implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
resultLabel.setText(resultLabel.getText() + "1.50");
}
}
private class ButtonListener5 implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
resultLabel.setText(resultLabel.getText() + "1.50");
}
}
private class ButtonListener6 implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
resultLabel.setText(resultLabel.getText() + "1.50");
}
}
private class ButtonListener7 implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
resultLabel.setText(resultLabel.getText() + "1.50");
}
}
private class ButtonListener8 implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
resultLabel.setText(resultLabel.getText() + "1.50");
}
}
private class ButtonListener9 implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
resultLabel.setText(resultLabel.getText() + "1.50");
}
}
private class ButtonListenerT implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
double total;
resultLabel.setText ("Total plus tax:" + total = total *1.07);
}
}
}
答案 0 :(得分:1)
确定OP的代码非常模糊且很难理解。所以我要在黑暗中扔石头。
在除actionPerformed
之外的每个按钮列表器的ButtonListenerT
方法中,将代码更改为
private class ButtonListener0 implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
resultLabel.setText(String.valueOf(Double.parseDouble(resultLabel.getText()) + 10.00));
}
}
ButtonListener2
10.00
的将为16.00
,依此类推......
现在
private class ButtonListenerT implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
double total;
total = Double.parseDouble(resultLabel.getText());
resultLabel.setText ("Total plus tax: " + (total *1.07));
}
}