Java 小程序赢得';跑不动

Java 小程序赢得';跑不动,java,applet,awt,Java,Applet,Awt,我是java语言的新手,我试图在google的帮助下制作一个程序,这是一个小程序,但即使eclipse中没有错误,它也不会运行。如果cardLayout可以在applet中使用,我也会对它感到困惑,因此我将非常感谢您的帮助 import java.awt.*; import java.awt.event.*; import java.applet.*; import java.io.*; import javax.swing.*; public class Proto extends App

我是java语言的新手,我试图在google的帮助下制作一个程序,这是一个小程序,但即使eclipse中没有错误,它也不会运行。如果cardLayout可以在applet中使用,我也会对它感到困惑,因此我将非常感谢您的帮助

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

import java.io.*;
import javax.swing.*;

public class Proto extends Applet implements ActionListener {
    Label Store = new Label("WELCOME TO SCHOOL SUPPLIES STORE");
    double Price, Subtotal;
    String Code;
    String ITname;
    String quan;
    String choice;
    int qty;
    double Total;
    CardLayout card1;
    Container c, d;
    File writer;
    Button buttonBUY = new Button ("BUY");
    Button buttonCONFIRM = new Button("Confirm");
    Button buttonCONFIRM1 = new Button("Confirm your transaction?");
    Button back = new Button ("Back");
    Button close = new Button ("Close");
    Font StoreFont = new Font("Times New Roman", Font.BOLD, 15);


    Label flb1 = new Label ("Item");
    Label flb2 = new Label ("Quantity");
    Label flb3 = new Label ("Price");
    Label flb4 = new Label ("SUbtotal");
    Label lb1 = new Label("ITEM CODE  ");
    Label lb2 = new Label("  PRODUCT NAME  ");
    Label lb3 = new Label("  PRICE  ");
    Label lb4 = new Label ("  QUANTITY ");


    Label c1 = new Label ("HBW01");
    Label HBW01pn = new Label ("  HBW Ballpen  ");
    Label HBW01p = new Label ("  8.00PHP  ");

    Label c2 = new Label ("MNG02");
    Label MNG02pn = new Label ("  Mongol Pencil  ");
    Label MNG02p = new Label ("  6.00PHP  ");

    Label c3 = new Label ("MRK03");
    Label MRK03pn = new Label ("  Marker/Pentel  ");
    Label MRK03p = new Label ("  30.00PHP    ");

    Label c4 = new Label ("YLW04");
    Label YLW04pn = new Label ("  One Whole Yellow Pad  ");
    Label YLW04p = new Label ("  30.00PHP    ");

    Label c5 = new Label ("CRT05");
    Label CRT05pn = new Label ("  Cartolina  ");
    Label CRT05p = new Label ("  10.00PHP    ");

    Label c6 = new Label ("MNL06");
    Label MNL06pn = new Label ("  Manila Paper  ");
    Label MNL06p = new Label ("  6.00PHP    ");

    Label c7 = new Label ("EGL07");
    Label EGL07pn = new Label ("  Elmer's Glue  ");
    Label EGL07p = new Label ("  12.00PHP    ");

    Label c8 = new Label ("CPR08");
    Label CPR08pn = new Label ("  Colored Paper ");
    Label CPR08p = new Label ("  1.00PHP    ");

    Label c9 = new Label ("BPR09");
    Label BPR09pn = new Label ("  Bond Paper  ");
    Label BPR09p = new Label ("  1.00PHP    ");

    Label c10 = new Label ("OPR10");
    Label OPR10pn = new Label ("  Oslo Paper  ");
    Label OPR10p = new Label ("  1.00PHP    ");

    Label c11 = new Label ("GPR11");
    Label GPR11pn = new Label ("  Graphing Paper  ");
    Label GPR11p = new Label ("  1.00PHP    ");

    Label c12 = new Label ("RLR12");
    Label RLR12pn = new Label ("  Ruler  ");
    Label RLR12p = new Label ("  10.00PHP    ");

    Label c13 = new Label ("PRT13");
    Label PRT13pn = new Label ("  Protractor  ");
    Label PRT13p = new Label ("  10.00PHP    ");

    Label c14 = new Label ("ERS14");
    Label ERS14pn = new Label ("  Eraser  ");
    Label ERS14p = new Label ("  5.00PHP    ");

    Label c15 = new Label ("FLR15");
    Label FLR15pn = new Label ("  Notebook Filler  ");
    Label FLR15p = new Label ("  15.00PHP    ");

    Label c16 = new Label ("SCR16");
    Label SCR16pn = new Label ("  Scissor  ");
    Label SCR16p = new Label ("  10.00PHP    ");
    TextArea TA = new TextArea (10, 10);
    TextArea RP = new TextArea (10, 80);
    TextArea CH = new TextArea (10, 10);
    TextArea TOT = new TextArea (10, 10);


public void init() {
    back.addActionListener(this);
    buttonBUY.addActionListener(this);
    buttonCONFIRM.addActionListener(this);
    buttonCONFIRM1.addActionListener(this);
    close.addActionListener(this);
    card1 =new CardLayout(800,600);
    c.setLayout(card1);
    c.add(Store);
    c.add(lb1);c.add(lb2);c.add(lb3);c.add(lb4);
    c.add(c1);c.add(HBW01pn);c.add(HBW01p);
    c.add(c2);c.add(MNG02pn);c.add(MNG02p);
    c.add(c3);c.add(MRK03pn);c.add(MRK03p);
    c.add(c4);c.add(YLW04pn);c.add(YLW04p);
    c.add(c5);c.add(CRT05pn);c.add(CRT05p);
    c.add(c6);c.add(MNL06pn);c.add(MNL06p);
    c.add(c7);c.add(EGL07pn);c.add(EGL07p);
    c.add(c8);c.add(CPR08pn);c.add(CPR08p);
    c.add(c9);c.add(BPR09pn);c.add(BPR09p);
    c.add(c10);c.add(OPR10pn);c.add(OPR10p);
    c.add(c11);c.add(GPR11pn);c.add(GPR11p);
    c.add(c12);c.add(RLR12pn);c.add(RLR12p);
    c.add(c13);c.add(PRT13pn);c.add(PRT13p);
    c.add(c14);c.add(ERS14pn);c.add(ERS14p);
    c.add(c15);c.add(FLR15pn);c.add(FLR15p);
    c.add(c16);c.add(SCR16pn);c.add(SCR16p);
    c.add(buttonBUY);



} //end of init()


public void actionPerformed (ActionEvent ae) {


    if (ae.getSource() == buttonBUY) {
        second(c);
    }
    if (ae.getSource() == buttonCONFIRM)
     if (Code=="HBW01"){
            Price = 8.00;
            ITname = "HBW Ballpen ";
        }
     else if (Code=="MNG02"){
            Price = 6.00;
            ITname = "Mongol Pencil ";
        }
     else if (Code=="MRK03"){
            Price = 30.00;
            ITname = "Marker";
        }
     else if (Code=="YLW04"){
            Price = 30.00;
            ITname = "Yellow Pad ";
        }
     else if (Code=="CRR05"){
            Price = 10.00;
            ITname = "Cartolina ";
        }
     else if (Code=="MNL06"){
            Price = 6.00;
            ITname = "Manila Paper";
        }
     else if (Code=="EGL07"){
            Price = 12.00;
            ITname = "Elmer’s Glue ";
        }
     else if (Code=="CPR08"){
            Price = 1.00;
            ITname = "Colored Paper ";
        }
     else if (Code=="BPR09"){
            Price = 1.00;
            ITname = "Bond Paper ";
        }
     else if (Code=="OPR10"){
            Price = 1.00;
            ITname = "Oslo Paper ";
        }
     else if (Code=="GPR11"){
            Price = 1.00;
            ITname = "Graphing Paper ";
        }
     else if (Code=="RLR12"){
            Price = 10.00;
            ITname = "Ruler";
        }
     else if (Code=="PTR13"){
            Price = 10.00;
            ITname = "Protractor";
        }
     else if (Code=="ERS14"){
            Price = 5.00;
            ITname = "Eraser ";
        }
     else if (Code=="FLR15"){
            Price = 15.00;
            ITname = "Notebook Filler ";
        }
     else if (Code=="SCR16"){
            Price = 10.00;
            ITname = "Scissor";
        }
     else{
         error(d);
     }
    if (ae.getSource()== back){
        second(c);
    }
    if (ae.getSource() == close){
        System.exit(0);
    }
}



public void second(Container d){
    Label Enter = new Label("Enter Code");
    d.add(Enter);
    d.add(TA); d.add(buttonCONFIRM);
    String Code = TA.getText();
    third(d);







}
public void third(Container e){
    Label Quantity = new Label("Enter  Quantity");
    e.add(Quantity);
    quan = Quantity.getText();
    qty = Integer.parseInt(quan);
    Subtotal = Price * qty;
    Total = Total + Subtotal;
    e.add(buttonCONFIRM1);



}
public void error(Container f){
    Label derror = new Label("Code Not Found");
    f.add(derror);
    f.add(back);

}
public void ask(Container g){
    RP.append(flb1.getText() + "\t" + flb2.getText() + "\t" + flb3.getText() + "\t" + flb4.getText() + "\t  TOTAL");
    RP.append(ITname + "\t" + quan + "\t" + Price + "\t" + Subtotal);

    Label eof = new Label("Would you like to have another transaction? [Y/N]" );
    g.add(eof); g.add(CH);
    choice = CH.getText();
    if (choice == "Y"){
        second(g);
    }
    else 
        last(g);
}
public void last(Container h){
    Label T = new Label ("Total is:");
    String Final = String.valueOf(Total);
    TOT.append(Final);
    h.add(RP);
    h.add(T); h.add(TOT);
    h.add(close);


}
}
替换此行:

Container c, d;
关于这一点:

Container c = new Container(), d = new Container();
因为您正试图将布局应用于具有空引用的不存在对象


对于其余部分,小程序将启动,但它会在控制台中打印异常。你应该注意它。

作为你问题的旁白,是的,你可以在小程序中使用
CardLayout
,但是,我强烈建议你不要使用小程序或基于AWT的组件,它们有点过时了。考虑使用Swing或JavaFX。查看更多信息details@SacJn你知道小程序是对的吗?你的主要问题是你似乎没有向屏幕上显示的容器添加任何东西
c
,您的主容器,似乎没有初始化,因此它可能会生成一个
NullPointerException
@KevinEsche。我认为这可以在没有主方法的情况下运行?谢谢,小程序启动了,但它是空的。