?? register.java
字號:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class Register extends JFrame implements ActionListener
{
JPanel pnlRegister;
JLabel lblUserName,lblGender,lblAge;
JLabel lblPassword,lblConfirmPass,lblEmail,logoPosition;
JTextField txtUserName,txtEmail,lblSelect;
JPasswordField pwdUserPassword,pwdConfirmPass;
JRadioButton rbtnMale,rbtnFemale;
JComboBox cmbAge;
ButtonGroup btngGender;
JButton btnOk,btnCancel,btnClear;
RandomAccessFile rafUser;
static String strAge[]=new String[101];
//用于將窗口用于定位
Dimension scrnsize;
Toolkit toolkit=Toolkit.getDefaultToolkit();
//構造方法
public Register()
{
super("[HappyChat]聊天室注冊窗口");
for(int n=0;n<strAge.length;n++)
{
strAge[n]=String.valueOf(n);
}
pnlRegister=new JPanel();
this.getContentPane().add(pnlRegister);
lblUserName=new JLabel("用 戶 名:");
lblGender=new JLabel("性 別:");
lblAge=new JLabel("年 齡:");
lblPassword=new JLabel("口 令:");
lblConfirmPass=new JLabel("確認口令:");
lblEmail=new JLabel("電子郵件:");
txtUserName=new JTextField(30);
txtEmail=new JTextField(20);
cmbAge=new JComboBox(strAge);
lblSelect=new JTextField(30);
pwdUserPassword=new JPasswordField(30);
pwdConfirmPass=new JPasswordField(30);
rbtnMale=new JRadioButton("男");
rbtnFemale=new JRadioButton("女");
btngGender=new ButtonGroup();
btnOk=new JButton("確定(O)");
btnOk.setMnemonic('O');
btnOk.setToolTipText("保存注冊信息");
btnCancel=new JButton("返回(B)");
btnCancel.setMnemonic('B');
btnCancel.setToolTipText("返回登錄窗口");
btnClear=new JButton("清空(L)");
btnClear.setMnemonic('L');
btnClear.setToolTipText("清空注冊信息");
pnlRegister.setLayout(null);
pnlRegister.setBackground(new Color(52,130,203));
lblUserName.setBounds(30,80,100,30);
txtUserName.setBounds(110,85,120,20);
lblPassword.setBounds(30,105,100,30);
pwdUserPassword.setBounds(110,110,120,20);
lblConfirmPass.setBounds(30,130,100,30);
pwdConfirmPass.setBounds(110,135,120,20);
lblGender.setBounds(30,155,100,30);
rbtnMale.setBounds(110,160,60,20);
rbtnFemale.setBounds(190,160,60,20);
lblAge.setBounds(30,180,100,30);
cmbAge.setBounds(110,185,120,20);
lblEmail.setBounds(30,205,100,30);
txtEmail.setBounds(110,210,120,20);
btnOk.setBounds(250,135,80,25);
btnCancel.setBounds(250,170,80,25);
btnClear.setBounds(250,210,80,25);
Font fontstr=new Font("宋體",Font.PLAIN,12);
lblUserName.setFont(fontstr);
lblGender.setFont(fontstr);
lblPassword.setFont(fontstr);
lblConfirmPass.setFont(fontstr);
lblAge.setFont(fontstr);
lblEmail.setFont(fontstr);
rbtnMale.setFont(fontstr);
rbtnFemale.setFont(fontstr);
txtUserName.setFont(fontstr);
txtEmail.setFont(fontstr);
btnOk.setFont(fontstr);
btnCancel.setFont(fontstr);
btnClear.setFont(fontstr);
lblUserName.setForeground(Color.BLACK);
lblGender.setForeground(Color.BLACK);
lblPassword.setForeground(Color.BLACK);
lblAge.setForeground(Color.BLACK);
lblConfirmPass .setForeground(Color.BLACK);
lblEmail.setForeground(Color.BLACK);
rbtnMale.setForeground(Color.BLACK);
rbtnFemale.setForeground(Color.BLACK);
rbtnMale.setBackground(Color.white);
rbtnFemale.setBackground(Color.white);
btnOk.setBackground(Color.ORANGE);
btnCancel.setBackground(Color.ORANGE);
btnClear.setBackground(Color.ORANGE);
rbtnMale.setOpaque(false);
rbtnFemale.setOpaque(false);
pnlRegister.add(lblUserName);
pnlRegister.add(lblGender);
pnlRegister.add(lblPassword);
pnlRegister.add(lblConfirmPass);
pnlRegister.add(lblEmail);
pnlRegister.add(lblAge);
pnlRegister.add(cmbAge);
pnlRegister.add(txtUserName);
pnlRegister.add(txtEmail);
pnlRegister.add(pwdUserPassword);
pnlRegister.add(pwdConfirmPass);
pnlRegister.add(btnOk);
pnlRegister.add(btnCancel);
pnlRegister.add(btnClear);
pnlRegister.add(rbtnMale);
pnlRegister.add(rbtnFemale);
btngGender.add(rbtnMale);
btngGender.add(rbtnFemale);
//設置背景圖片
Icon logo = new ImageIcon("images\\registerlogo.jpg");
logoPosition = new JLabel(logo);
logoPosition.setBounds(0, 0, 360,78);
pnlRegister.add(logoPosition);
this.setSize(360,270);
this.setVisible(true);
this.setResizable(false);
//將窗口定位在屏幕中央
scrnsize=toolkit.getScreenSize();
this.setLocation(scrnsize.width/2-this.getWidth()/2,
scrnsize.height/2-this.getHeight()/2);
Image img=toolkit.getImage("images\\appico.jpg");
this.setIconImage(img);
btnOk.addActionListener(this);
btnCancel.addActionListener(this);
btnClear.addActionListener(this);
cmbAge.addActionListener(this);
rbtnMale.addActionListener(this);
rbtnFemale.addActionListener(this);
}
public boolean saveToFile()
{
try
{
//構造可讀寫RandomAccessFile對象
rafUser=new RandomAccessFile("user.txt","rw");
//文件指針定位到文件開始處
rafUser.seek(0);
//將組件中相應內容寫入到文件
rafUser.writeBytes(txtUserName.getText()+"\r\n");
rafUser.writeBytes(pwdUserPassword.getText()+"\r\n");
rafUser.writeBytes("Sex:"+lblSelect.getText()+"\r\n");
rafUser.writeBytes("Age:"+(String)cmbAge.getSelectedItem()+"\r\n");
rafUser.writeBytes("Email:"+txtEmail.getText());
rafUser.close();
return true;
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"文件保存失敗!");
return false;
}
}
public void actionPerformed(ActionEvent ae)
{
Object source=new Object();
source=ae.getSource();
if (ae.getSource()==rbtnFemale)
lblSelect.setText("female");
if (ae.getSource()==rbtnMale)
lblSelect.setText("male");
if (source.equals(btnOk))
{
if(txtUserName.getText().length()==0)
{
JOptionPane.showMessageDialog(null,"用戶名不能為空");
return;
}
int Name_flag=0;
char b[]={'0','1','2','3','4','5','6','7','8','9'};
for (int i=0;i<b.length;i++)
{
if(txtUserName.getText().charAt(0)==b[i])
{
Name_flag++;
}
}
if(Name_flag==1)
{
JOptionPane.showMessageDialog(null,"用戶名格式不正確,請重新輸入");
return;
}
if(pwdUserPassword.getText().length()==0)
{
JOptionPane.showMessageDialog(null,"密碼不能為空");
return;
}
if(pwdUserPassword.getText().length()<8)
{JOptionPane.showMessageDialog(null,"密碼長度不夠");
return ;
}
if(!pwdUserPassword.getText().equals(pwdConfirmPass.getText()))
{
JOptionPane.showMessageDialog(null,"密碼兩次輸入不一致,請重新輸入");
return;
}
int Found_flag=0;
for (int i=0;i<txtEmail.getText().length();i++)
{
if(txtEmail.getText().charAt(i)=='@')
{
Found_flag++;
}
}
if(Found_flag!=1)
{
JOptionPane.showMessageDialog(null,"電子郵箱格式不正確,請重新輸入");
return;
}
if (saveToFile())
JOptionPane.showMessageDialog(null,"注冊成功!");
}
if (source.equals(btnCancel)) //"返回"按鈕
{
new Login();
this.dispose();
}
if (source.equals(btnClear)) //"清空"按鈕
{
txtUserName.setText("");
pwdUserPassword.setText("");
pwdConfirmPass.setText("");
txtEmail.setText("");
}
}
public static void main(String args[])
{
new Register();
}
} //class Register 結束
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -