各位帮我看下这个程序
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import java.util.Vector;
public class Card extends JApplet
{
public void init()
{
JPanel panel=new Change();
getContentPane().add(panel);
}
}
class Change extends JPanel
{
Land land;
Register ris;
ToyShow toy;
Buy buy;
JButton button,button2;
String buttonFlag;
static boolean startFlag;
public Change()
{
if(!startFlag)
{System.out.println("start...");
land=new Land();
startFlag=true;
System.out.println(startFlag);
add(land);
}
}
public void setBool(String Flag)
{
buttonFlag=Flag;
if(buttonFlag=="OK")
{ //System.out.println("logout");
remove(land);
ris=new Register();
//System.out.println("loding");
add(ris);
//System.out.println("loged");
}
if(buttonFlag=="aaa")
{
}
}
}
class Land extends JApplet
{
public Land()
{
JPanel log=new Login();
getContentPane().add(log);
}
}
class Register extends JApplet
{
public Register()
{
JPanel reg=new Reg();
getContentPane().add(reg);
System.out.println("Reg");
}
}
class ToyShow extends JApplet
{
public ToyShow()
{
JPanel toy=new ToysShow();
getContentPane().add(toy);
System.out.println("toysShow");
}
}
class Buy extends JApplet
{
public Buy()
{
JPanel panel=new Orders();
getContentPane().add(panel);
}
}
下面为加载的第一个页面:当点击"登陆"按钮是,调用Change对象的setBool()方法,该方法移除该页面,加载另一个页面;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
class Shopper implements Serializable
{
String shopperID;
String password;
}
public class Login extends JPanel
{
public Login()
{
LoginPanel panel=new LoginPanel();
add(panel,BorderLayout.NORTH);
}
}
class LoginPanel extends JPanel implements ActionListener
{
Socket clientSocket;
ObjectInputStream objIn;
ObjectOutputStream objOut;
PrintStream out;
BufferedReader in;
String a;
String b;
JLabel jlUseName;
JLabel jlPassword;
JTextField jtfUseName;
JPasswordField jpwPassword;
JButton jbSubmit;
public LoginPanel()
{
try{
clientSocket= new Socket("127.0.0.1",1001);
objOut=new ObjectOutputStream(clientSocket.getOutputStream());
objIn= new ObjectInputStream(clientSocket.getInputStream());
out=new PrintStream(clientSocket.getOutputStream());
in=new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
}
catch(Exception e)
{
System.out.println("Could not cennect server"+e);
}
setLayout(new GridLayout(3,1));
JPanel panel=new JPanel();
add(panel);
JPanel panel2=new JPanel();
add(panel2);
JPanel panel3=new JPanel();
add(panel3);
panel3.setLayout(new BorderLayout());
jlUseName=new JLabel("用户ID号:");
jlPassword=new JLabel("密 码:");
jtfUseName=new JTextField(20);
jpwPassword=new JPasswordField(20);
jbSubmit=new JButton("登陆");
panel.add(jlUseName);
panel.add(jtfUseName);
panel2.add(jlPassword);
panel2.add(jpwPassword);
JPanel jpSubmit=new JPanel();
panel3.add(jpSubmit,BorderLayout.CENTER);
jpSubmit.add(jbSubmit);
jbSubmit.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
if((JButton)e.getSource()==jbSubmit)
{
Shopper shopperData=new Shopper();
a=jtfUseName.getText();
b=jpwPassword.getText();
try
{
out.println("登陆");
out.println(a);
out.println(b);
String flag=in.readLine();
if(flag.equals("true"))
{
//JOptionPane.showMessageDialog(null,"通过验证");
Change cha=new Change();
cha.setBool("OK");
}
else
JOptionPane.showMessageDialog(null,"验证错误,请重新输入");
}
catch(IOException e1)
{
System.out.println("notFount server...");
}
}
}
}
运行后点击"登陆"按钮,出现以下错误:
D:\Temp>appletviewer card.htm
start...
true
java.lang.NullPointerException
at java.awt.Container.remove(Container.java:577)
at Change.setBool(Card.java:60)
at LoginPanel.actionPerformed(Login.java:117)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:17
67)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Abstra
ctButton.java:1820)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
.java:419)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257
)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL
istener.java:258)
at java.awt.Component.processMouseEvent(Component.java:5021)
at java.awt.Component.processEvent(Component.java:4818)
at java.awt.Container.processEvent(Container.java:1380)
at java.awt.Component.dispatchEventImpl(Component.java:3526)
at java.awt.Container.dispatchEventImpl(Container.java:1437)
at java.awt.Component.dispatchEvent(Component.java:3367)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3214
)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2929)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2859)
at java.awt.Container.dispatchEventImpl(Container.java:1423)
at java.awt.Component.dispatchEvent(Component.java:3367)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:445)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:190)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:130)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:98)
请各位帮帮我.(注:每个页面都独立运行通过);