高手,您好:
    这是我的一个Java写的“用户登录界面”的源代码:
    package c_port_packageTeacher;import java.awt.Rectangle;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;public class Login extends JFrame{ /**
 * 
 */
private static final long serialVersionUID = 1L;
/**
 * @param args
 */
JTextField jtf0 = new JTextField();
JTextField jtf1 = new JTextField();
JLabel jl0 = new JLabel();
JLabel jl1 = new JLabel();
MyJButtonLogin jb1 = new MyJButtonLogin("登陆",jtf0.getText(),jtf1.getText(),this);
MyJButton jb2 = new MyJButton("注册","127.0.0.1");
MyJButtonPayForSysProduct jb3 = new MyJButtonPayForSysProduct("买产品");
JPasswordField jpwf = new JPasswordField();       
JPanel jp1 = new JPanel();
public static String UID = null;
static String PWD = null;

public static void main(String[] args) {
// TODO Auto-generated method stub
new Login();
}

public Login(){
this.setTitle("赤兔马网络答疑学校,让您的孩子,从杜月笙成为段永平");
this.setSize(500,600);
this.setVisible(true);
this.setDefaultCloseOperation(Login.EXIT_ON_CLOSE);
jb1.setBounds(new Rectangle(30,220,80,30));
jb2.setBounds(new Rectangle(236,220,80,30));
jb3.setBounds(new Rectangle(128,220,90,30));
jp1.setLayout(null);
jp1.add(jb1);
jp1.add(jb2);
jtf0.setBounds(new Rectangle(73,115,220,25));
jp1.add(jtf0);
jpwf.setBounds(new Rectangle(73,150,220,25));
jp1.add(jpwf) ;
jl0 = new JLabel("用户名");
jl1 = new JLabel("密码");
jl0.setBounds(new Rectangle(30,115,40,25));
jl1.setBounds(new Rectangle(30,150,40,25));
jp1.add(jl0);
jp1.add(jl1);
jp1.add(jb3);
this.add(jp1);
this.setBounds(283,115,370,330);
this.setContentPane(jp1);
UID = jtf0.getText();
PWD = jtf1.getText();
}
}    这是其中的“MyJButtonPayForSysProduct”类的源代码:
    package c_port_packageTeacher;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;import javax.swing.JButton;public class MyJButtonPayForSysProduct extends JButton{
/**
 * 
 */
private static final long serialVersionUID = 1L;
Socket s;
public MyJButtonPayForSysProduct(String name){
super(name);
try {
s = new Socket(Recv.D_PORT_SERVER,9999);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
new PayforTheSoftWareOfDevelopmenter(s);
this.addActionListener(new ActionListener(){ @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
new PayforTheSoftWareOfDevelopmenter(s);
}

});
}
}
    上面的MyJButtonPayForSysProduct类文件中的,“第34行”代码的类“PayforTheSoftWareOfDevelopmenter”,的源代码如下:
    package c_port_packageDoctor;import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;public class PayforTheSoftWareOfDevelopmenter extends JFrame implements ActionListener{
/**
 * 
 */
private static final long serialVersionUID = 1L;
Socket so1 = null;
JPanel jp = new JPanel();
JButton jb0 = new JButton("提交本客户端开发商产品注册码");
JTextField jtf = new JTextField();
static JLabel jL = new JLabel("<html>请输入您9位系统服务授权验证码<br>获得系统的在线优秀教师的服务和本系统的产品授权,购买地址:您所在的银川新二中财务处购买</html>");
DataOutputStream dops = null;
Integer MyMemNum = -1;
String MyMemNumStr = null;

public PayforTheSoftWareOfDevelopmenter(Socket s1){
so1 = s1;
this.setBounds(283,115,370,330);
Font fnt = new Font("华文中宋",0,18);
jb0.setFont(fnt);
jL.setFont(fnt);
this.setTitle("请输入授权码获得产品使用权");
jb0.setEnabled(false);
jtf.addKeyListener(new KeyAdapter(){
    public void keyTyped(KeyEvent evt) {      String content = jtf.getText();
        int typenum = content.length();
        if(typenum==9){
         jb0.setEnabled(true);
        }}
       });
jp.setLayout(new BorderLayout());
jp.add(jL,BorderLayout.NORTH);
jp.add(jb0,BorderLayout.CENTER);
jp.add(jtf,BorderLayout.SOUTH);
jp.setBounds(new Rectangle(400,300,400,300));
this.add(jp);
this.setVisible(true);
}

public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String MyPersonality = jtf.getText();
try {
dops = new DataOutputStream(so1.getOutputStream());
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
MyMemNumStr = String.valueOf(Recv.MySystemserialnum);
int length = MyMemNumStr.length();
if(length==1){
MyMemNumStr = "00"+MyMemNumStr;
}
if(length==2){
MyMemNumStr = "0"+MyMemNumStr;
}
int len = MyPersonality.length();
if(len == 9){
jb0.setEnabled(true);
try {
dops.writeUTF("11##"+MyMemNumStr+"%%"+MyPersonality);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}     现在弟我碰到的问题是:
     上面的“Login类”在点击了“运行按钮”之后,出现了下面的场景:
     
     移开上面的“注册登录”窗口后,得到的结果如下:
     
     弟我上面的代码,已经经过了我的详细排查,确实..
     没有能够产生“不点击"买产品"按钮”,就打开两个窗口的逻辑...
     希望能够得到CSDN论坛中的高手的点拨:
     怎样修改,能够将上面的“不请自到的"支付授权"的窗口”出现的问题,解决?
     并且,上面的错误出现的原因,是由于什么代码逻辑造成的?
     哪个类?
     哪一行?
     谢谢高手的点拨!!
     一百分奉上!!
                                                                  一位求知者
                                                                  29013年9月25日下午18点28分javaJava代码调试登陆窗口异常Java监视器Java代码出错点排找