各位帮我看下这个程序

metomoon 2002-12-27 12:06:28
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)

请各位帮帮我.(注:每个页面都独立运行通过);
...全文
22 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧