有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java小程序不会计算

我这里有一个小程序,允许用户从下拉列表中选择一部电影,然后选择多张票。应显示一个复选框供用户单击,以便他们可以获得日场电影的折扣。用户应该能够单击“计算价格”按钮以显示总成本,单击“清除”按钮以清除每个下拉列表和复选框。程序已经编译,但当我点击calculate按钮时,它生成了很多错误代码,比如java。lang.nullPointerException等等。我只是想让程序正常运行,所以请帮助我。请参考以下代码:

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class Proj4exe2 extends Applet implements ItemListener, ActionListener
{
Choice movieChoice = new Choice();
Button calcButton = new Button("CALCULATE");
Choice ticketsChoice = new Choice();
Button clearButton = new Button("CLEAR");
Checkbox matineeBox = new Checkbox("Matinee Discount", false);
Label outputLabel = new Label("");
int i = 1;
int size;
double presyoKo[];
double totalPresyo = 0.00;
double diskwento;

public void init()
{
setBackground(Color.yellow);
add(new Label("Welcome to ENCORE MOVIES"));
add(new Label("Please choose a movie:"));
add(movieChoice);
movieChoice.addItem("My Little Bossings");
movieChoice.addItem("Pagpag");
movieChoice.addItem("San Pedro Calungsod");
movieChoice.addItem("Kimi Dora Prequel");
movieChoice.addItem("10,000 Hours");
    movieChoice.addItem("Girl, Boy, Bakla, Tomboy");
    movieChoice.addItem("Boy Golden");
    movieChoice.addItem("Kaleidoscope World");
movieChoice.addItemListener(this);
add(calcButton);
calcButton.addActionListener(this);
add(ticketsChoice);
ticketsChoice.addItem("0");
ticketsChoice.addItem("1");
ticketsChoice.addItem("2");
ticketsChoice.addItem("3");
ticketsChoice.addItem("4");
ticketsChoice.addItem("5");
ticketsChoice.addItem("6");
ticketsChoice.addItem("7");
ticketsChoice.addItem("8");
ticketsChoice.addItem("9");
ticketsChoice.addItem("10");
ticketsChoice.addItem("11");
ticketsChoice.addItem("12");
ticketsChoice.addItem("13");
ticketsChoice.addItem("14");
ticketsChoice.addItem("15");
ticketsChoice.addItemListener(this);
add(clearButton);
clearButton.addActionListener(this);
add(matineeBox);
matineeBox.addItemListener(this);
add(outputLabel);
}
public void actionPerformed(ActionEvent e)
{
    String args = e.getActionCommand();
    if(args == "CALCULATE")
    {

        size = i++;
        presyoKo[i] = Double.parseDouble(ticketsChoice.getSelectedItem());

        totalPresyo = presyoKo[i] * 50.0;
        outputLabel.setText("Your charge is " + totalPresyo + ". Thank you.");
        }
        if(args == "CLEAR")
        {
            movieChoice.select(0);
            ticketsChoice.select(0);
            matineeBox.setState(false);
            outputLabel.setText("");
            }
    }
    public void itemStateChanged(ItemEvent ee)
    {
        diskwento = (totalPresyo * .25);
        if(matineeBox.getState() == true)
        {
            totalPresyo = totalPresyo - diskwento;
            }
        }
}

小程序代码:

<html>
<applet code = "Proj4exe2.java" height = "450" width = "450">
</applet code>
</html>

请原谅我的笨拙设计,因为我没有创建布局管理器。我非常欢迎提供提示和评论,以进一步改进该程序的代码。非常感谢


共 (1) 个答案

  1. # 1 楼答案

    double presyoKo[];用于初始化之前执行的操作

    编辑

    不要使用数组,而是使用ArrayList并不断添加到其中

    ArrayList<Double> ticketPrices = new ArrayList<Double>();
    ...
    ... actionPerformed(...) ...
      double qty = Double.parseDouble(ticketsChoice.getSelectedItem());
      ticketPrices.add(qty * 50);