用jbuilder制作简单的注册窗口,当输入正确的姓名、两次密码及邮箱后,跳转到另一窗口显示"注册成功"和相关信息,若失败显示“注册失败”及相关信息。    我现在学的源代码为:
//窗口1
package zhuce2;import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ZhuCeFrame extends JFrame {
  JPanel contentPane;
  JLabel jLabel1 = new JLabel();
  JLabel jLabel2 = new JLabel();
  JLabel jLabel3 = new JLabel();
  JLabel jLabel4 = new JLabel();
  JTextField jTF1 = new JTextField();
  JPasswordField jPF1 = new JPasswordField();
  JPasswordField jPF2 = new JPasswordField();
  JTextField jTF2 = new JTextField();
  JButton jB1 = new JButton();
  JButton jB2 = new JButton();  String msg,msg2;  //Construct the frame
  public ZhuCeFrame() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }  //Component initialization
  private void jbInit() throws Exception {
    contentPane = (JPanel)this.getContentPane();
    jLabel1.setFont(new java.awt.Font("Dialog", 0, 15));
    jLabel1.setText("用户名:");
    jLabel1.setBounds(new Rectangle(74, 33, 97, 31));
    contentPane.setLayout(null);
    this.setSize(new Dimension(350, 303));
    this.setTitle("用户注册");
    jLabel2.setBounds(new Rectangle(74, 134, 97, 31));
    jLabel2.setFont(new java.awt.Font("Dialog", 0, 15));
    jLabel2.setText("密码确认:");
    jLabel3.setBounds(new Rectangle(74, 86, 97, 31));
    jLabel3.setFont(new java.awt.Font("Dialog", 0, 15));
    jLabel3.setText("密码:");
    jLabel4.setFont(new java.awt.Font("Dialog", 0, 15));
    jLabel4.setText("Email:");
    jLabel4.setBounds(new Rectangle(74, 181, 97, 31));
    jTF1.setFont(new java.awt.Font("Dialog", 0, 15));
    jTF1.setText("");
    jTF1.setBounds(new Rectangle(144, 36, 140, 27));
    jPF1.setFont(new java.awt.Font("Dialog", 0, 15));
    jPF1.setText("");
    jPF1.setBounds(new Rectangle(145, 85, 138, 28));
    jPF2.setFont(new java.awt.Font("Dialog", 0, 15));
    jPF2.setText("");
    jPF2.setBounds(new Rectangle(146, 134, 138, 27));
    jTF2.setFont(new java.awt.Font("Dialog", 0, 15));
    jTF2.setText("");
    jTF2.setBounds(new Rectangle(141, 180, 143, 27));
    jB1.setBounds(new Rectangle(67, 230, 89, 37));
    jB1.setFont(new java.awt.Font("Dialog", 0, 15));
    jB1.setText("确认");
    jB1.addActionListener(new ZhuCeFrame_jB1_actionAdapter(this));
    jB2.setText("重置");
    jB2.addActionListener(new ZhuCeFrame_jB2_actionAdapter(this));
    jB2.setBounds(new Rectangle(193, 228, 89, 37));
    jB2.setFont(new java.awt.Font("Dialog", 0, 15));
    jB2.setVerifyInputWhenFocusTarget(true);
    contentPane.add(jTF2, null);
    contentPane.add(jPF2, null);
    contentPane.add(jPF1, null);
    contentPane.add(jTF1, null);
    contentPane.add(jLabel1, null);
    contentPane.add(jLabel3, null);
    contentPane.add(jLabel2, null);
    contentPane.add(jLabel4, null);
    contentPane.add(jB2, null);
    contentPane.add(jB1, null);
  }  //Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }  void jB1_actionPerformed(ActionEvent e) {
    String user = jTF1.getText().trim();
    String password1 = jPF1.getText().trim();
    String password2 = jPF2.getText().trim();
    String mail = jTF2.getText().trim();    boolean flag=true;  //標誌  0-無  1-有
    InFoFrame frame;
    if(user.equalsIgnoreCase(null)||user.length()==0){
      msg2="用户名不能为空!\n";      flag=false;    }
    if(password1.length()<6){
      msg2+="密码长度因大于6位!\n";
      flag=false;
    }
    if(password1!=password2){
      msg2+="两次密码不一致!\n";
      flag=false;
    }
    if(mail.indexOf("@")<0){
      msg2+="Email地址不正确!\n";
      flag=false;
    }
     msg="對不起,註冊失敗!";
     frame=new InFoFrame(msg,msg2);
     this.hide();     frame.setSize(400,300);    if(flag){
      msg="恭喜您,注册成功!";
      msg2="您的用户名:"+user+"\n"+"您的密码为:"+password1+"\n"+"您的邮箱是:"+mail;
    }
    frame=new InFoFrame(msg,msg2);
     this.hide();     frame.setSize(400,300);   Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
   Dimension frameSize = frame.getSize();
   if (frameSize.height > screenSize.height) {
     frameSize.height = screenSize.height;
   }
   if (frameSize.width > screenSize.width) {
     frameSize.width = screenSize.width;
   }
   frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
   frame.setVisible(true);
  }  void jB2_actionPerformed(ActionEvent e) {
    jTF1.setText("");
    jTF2.setText("");
    jPF1.setText("");
    jPF2.setText("");
  //  jTA1.setText("");  }
}  class ZhuCeFrame_jB1_actionAdapter
      implements java.awt.event.ActionListener {
    ZhuCeFrame adaptee;    ZhuCeFrame_jB1_actionAdapter(ZhuCeFrame adaptee) {
      this.adaptee = adaptee;
    }    public void actionPerformed(ActionEvent e) {
      adaptee.jB1_actionPerformed(e);
    }
}class ZhuCeFrame_jB2_actionAdapter implements java.awt.event.ActionListener {
  ZhuCeFrame adaptee;  ZhuCeFrame_jB2_actionAdapter(ZhuCeFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jB2_actionPerformed(e);
  }
}
//窗口2package zhuce2;import javax.swing.*;
import java.awt.*;
public class InFoFrame extends JFrame {
  JLabel jLabel1 = new JLabel();
  JScrollPane jScrollPane1 = new JScrollPane();
  JTextArea jTA1 = new JTextArea();
  String msg,msg2;
  public InFoFrame(String msg,String msg2) {    try {
      this.msg=msg;
      this.msg2=msg2;
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  private void jbInit() throws Exception {
    jLabel1.setFont(new java.awt.Font("Dialog", 1, 15));
    jLabel1.setForeground(SystemColor.desktop);
    jLabel1.setToolTipText("");
    jLabel1.setVerifyInputWhenFocusTarget(true);
    jLabel1.setText(this.msg);
    jLabel1.setVerticalAlignment(SwingConstants.CENTER);
    jLabel1.setBounds(new Rectangle(104, 21, 238, 59));
    this.getContentPane().setLayout(null);
    jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    jScrollPane1.setBounds(new Rectangle(48, 98, 311, 159));
    jTA1.setVerifyInputWhenFocusTarget(true);
    jTA1.append(this.msg2);
    this.getContentPane().add(jScrollPane1, null);
    this.getContentPane().add(jLabel1, null);
    jScrollPane1.getViewport().add(jTA1, null);
  }
}
想问除了修改构造器来传输数据还可以用什么方法??应该怎么修改??我知道数组也可以,但是不太熟,如果有高手会的话.。。也请多指教!!

解决方案 »

  1.   

    在ZhuCeFrame中添加个main方法
    修改下jB1_actionPerformed就可以了void jB1_actionPerformed(ActionEvent e){
    String user = jTF1.getText().trim();
    String password1 = jPF1.getText().trim();
    String password2 = jPF2.getText().trim();
    String mail = jTF2.getText().trim();
    boolean flag = true; // 標誌 0-無 1-有
    InFoFrame frame;
    if(user.equalsIgnoreCase(null) || user.length() == 0){
    msg2 = "用户名不能为空!\n";
    flag = false;
    }
    if(password1.length() < 6){
    msg2 += "密码长度因大于6位!\n";
    flag = false;
    }
    if(!password1.equals(password2)){
    msg2 += "两次密码不一致!\n";
    flag = false;
    }
    if(mail.indexOf("@") < 0){
    msg2 += "Email地址不正确!\n";
    flag = false;
    }
    msg = "對不起,註冊失敗!";
    if(flag){
    msg = "恭喜您,注册成功!";
    msg2 = "您的用户名:" + user + "\n" + "您的密码为:" + password1 + "\n" + "您的邮箱是:" + mail;
    }
    frame = new InFoFrame(msg,msg2);
    this.dispose();
    frame.setSize(400,300);
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize = frame.getSize();
    if(frameSize.height > screenSize.height){
    frameSize.height = screenSize.height;
    }
    if(frameSize.width > screenSize.width){
    frameSize.width = screenSize.width;
    }
    frame.setLocation((screenSize.width - frameSize.width) / 2,(screenSize.height - frameSize.height) / 2);
    frame.setVisible(true);
    }public static void main(String[] args){
    ZhuCeFrame ZF = new ZhuCeFrame();
    ZF.setVisible(true);
    }
      

  2.   

    N久没用过jbuilder了楼主是公司要求用的么?
      

  3.   

    谢谢回答..不过不是我要的答案..我这个是可运行的
    main方法在另一个ZhuCheApp里...没有放出来!!我主要想问的是还有什么方法可以实现!!.。
      

  4.   

    是啊..但是我们学校好像认为学了jbuilder基本上Eclipse就差不多掌握了!!
    因为他们使用的都差不多..
    我记得原因好像是这样的.。。!!