用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
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);
}
}
想问除了修改构造器来传输数据还可以用什么方法??应该怎么修改??我知道数组也可以,但是不太熟,如果有高手会的话.。。也请多指教!!
修改下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);
}
main方法在另一个ZhuCheApp里...没有放出来!!我主要想问的是还有什么方法可以实现!!.。
因为他们使用的都差不多..
我记得原因好像是这样的.。。!!