📄 register.java
字号:
jTextArea.setEditable(false);
}
return jTextArea;
}
private JRadioButton getSex_maleRadioButton() {
if (sex_maleRadioButton == null) {
sex_maleRadioButton = new JRadioButton();
sex_maleRadioButton.setBounds(new java.awt.Rectangle(127,198,48,21));
sex_maleRadioButton.setText(Sex.MALE);
sex_maleRadioButton.setBackground(new java.awt.Color(0,204,255));
sex_maleRadioButton.setEnabled(true);
sex_maleRadioButton.setSelected(true);
sex_maleRadioButton.addActionListener(new SexListener());
}
return sex_maleRadioButton;
}
private JRadioButton getSex_femaleRadioButton() {
if (sex_femaleRadioButton == null) {
sex_femaleRadioButton = new JRadioButton();
sex_femaleRadioButton.setLocation(new java.awt.Point(175,198));
sex_femaleRadioButton.setText(Sex.FEMALE);
sex_femaleRadioButton.setBackground(new java.awt.Color(255,153,255));
sex_femaleRadioButton.setSize(new java.awt.Dimension(50,21));
sex_femaleRadioButton.addActionListener(new SexListener());
}
return sex_femaleRadioButton;
}
private JTextField getNameTextField() {
if (nameTextField == null) {
nameTextField = new JTextField();
nameTextField.setLocation(new java.awt.Point(126,168));
nameTextField.setSize(new java.awt.Dimension(175,24));
}
return nameTextField;
}
private JTextField getAgeTextField() {
if (ageTextField == null) {
ageTextField = new JTextField();
ageTextField.setLocation(new java.awt.Point(127,228));
ageTextField.setSize(new java.awt.Dimension(88,24));
}
return ageTextField;
}
private JTextField getCityTextField() {
if (cityTextField == null) {
cityTextField = new JTextField();
cityTextField.setLocation(new java.awt.Point(411,167));
cityTextField.setSize(new java.awt.Dimension(114,24));
}
return cityTextField;
}
private JTextField getTelTextField() {
if (telTextField == null) {
telTextField = new JTextField();
telTextField.setLocation(new java.awt.Point(411,198));
telTextField.setSize(new java.awt.Dimension(114,24));
}
return telTextField;
}
private JTextField getSignatureTextField() {
if (signatureTextField == null) {
signatureTextField = new JTextField();
signatureTextField.setLocation(new java.awt.Point(127,275));
signatureTextField.setText("我选择,我喜欢!");
signatureTextField.setSize(new java.awt.Dimension(396,24));
}
return signatureTextField;
}
private JCheckBox getPw_safetyCheckBox() {
if (pw_safetyCheckBox == null) {
pw_safetyCheckBox = new JCheckBox();
pw_safetyCheckBox.setBounds(new java.awt.Rectangle(32,12,148,28));
pw_safetyCheckBox.setFont(new java.awt.Font("楷体_GB2312", java.awt.Font.BOLD, 18));
pw_safetyCheckBox.setBackground(new java.awt.Color(226,213,223));
pw_safetyCheckBox.setForeground(new java.awt.Color(0,153,255));
pw_safetyCheckBox.setText("密码安全设置");
pw_safetyCheckBox.addActionListener(new SafetyChkListener());
}
return pw_safetyCheckBox;
}
private JTextField getAnswerTextField() {
if (answerTextField == null) {
answerTextField = new JTextField();
answerTextField.setLocation(new java.awt.Point(180,101));
answerTextField.setEnabled(false);
answerTextField.setSize(new java.awt.Dimension(208,25));
}
return answerTextField;
}
private JTextArea getNoticTextArea() {
if (noticTextArea == null) {
noticTextArea = new JTextArea();
noticTextArea.setBounds(new java.awt.Rectangle(398,60,123,66));
noticTextArea.setEditable(false);
noticTextArea.setLineWrap(true);
noticTextArea.setText(" 问题和答案均为1-20位(汉字为1-10个)。");
noticTextArea.setEnabled(false);
noticTextArea.setBackground(new java.awt.Color(204,255,255));
}
return noticTextArea;
}
// 自定义函数、类
// 定义“完成注册”按钮监听器类
class CmpRegListener implements ActionListener
{
public void actionPerformed(ActionEvent evt)
{
if(evt.getSource() == cmp_registerButton)
{
// msgFromServer用来存储从服务器返回的信息
String msgFromServer = "";
// 调用CheckInfo()检测用户信息
String msgFromCheck = (String)checkInfo();
// 如果通过检测,则连接服务器,发送套接字给服务器
if(msgFromCheck.compareTo("") == 0)
{
UserInfo data = (UserInfo)getUserInfo();
// tData用来存储发送到服务器的信息
TransData tData = new TransData();
tData.flag = TProtocal.REG_INFO;
tData.dataObj = (UserInfo)data;
try
{
// 创建套接字,连接服务器
Socket toServer;
toServer = new Socket(ServerIP.ADDRESS,ServerIP.PORT);
// 创建输出流
ObjectOutputStream streamToServer = new ObjectOutputStream(toServer.getOutputStream());
streamToServer.writeObject((TransData)tData);
// 创建输入流,将接受的用户注册信息发送到服务器
BufferedReader streamFromServer = new BufferedReader(new InputStreamReader(toServer.getInputStream()));
msgFromServer = (String)streamFromServer.readLine();
// 关闭数据流
streamToServer.close();
streamFromServer.close();
toServer.close();
}
catch(InvalidClassException e)
{
System.out.println("无效类UserInfo" + e);
return;
}
catch(NotSerializableException e)
{
System.out.println("对象未序列化" + e);
return;
}
catch(IOException e)
{
System.out.println("传输用户注册信息到服务器失败" + e);
JOptionPane.showMessageDialog(cmp_registerButton,"连接服务器失败!");
return;
}
JOptionPane.showMessageDialog(cmp_registerButton,msgFromServer);
}
else
{
JOptionPane.showMessageDialog(cmp_registerButton,msgFromCheck);
if(msgFromCheck.compareTo("重复输入密码不一致!") == 0 || msgFromCheck.compareTo("密码长度应该为6-16位!") == 0)
{
jPasswordField.setText("");
jPasswordField1.setText("");
}
}
}
}
}
// 定义“检测用户名”按钮监听器类
class CheckListener implements ActionListener
{
public void actionPerformed(ActionEvent evt)
{
String msgFromServer = "连接服务器失败!";
String userID = (String)user_nameTextField.getText().trim();
if(userID.compareTo("") == 0)
{
msgFromServer = "用户名不能为空!";
}
else
{
TransData tData = new TransData();
tData.flag = TProtocal.USERID_INFO;
tData.dataObj = userID;
try
{
Socket toServer;
toServer = new Socket(ServerIP.ADDRESS,ServerIP.PORT);
// 创建输出流,将所接受的用户信息发送到服务器
ObjectOutputStream streamToServer = new ObjectOutputStream(toServer.getOutputStream());
streamToServer.writeObject((TransData)tData);
// 创建输入流,接收服务器返回的消息
BufferedReader streamFromServer = new BufferedReader(new InputStreamReader(toServer.getInputStream()));
msgFromServer = (String)streamFromServer.readLine();
// 关闭数据流
streamToServer.close();
streamFromServer.close();
toServer.close();
}
catch(InvalidClassException e)
{
System.out.println("无效类TransData" + e);
return;
}
catch(NotSerializableException e)
{
System.out.println("对象未序列化" + e);
return;
}
catch(IOException e)
{
System.out.println("传输用户注册信息到服务器失败" + e);
JOptionPane.showMessageDialog(checkButton,"连接服务器失败!");
return;
}
}
if(msgFromServer.compareTo("此用户名已注册,请使用其它用户名!") == 0)
{
user_nameTextField.setText("");
}
// 用消息对话框显示服务器返回信息
JOptionPane.showMessageDialog(checkButton,msgFromServer);
}
}
// 定义“性别”单选按钮监听器类
class SexListener implements ActionListener
{
public void actionPerformed(ActionEvent evt)
{
if(evt.getSource() == sex_maleRadioButton)
{
inSex = Sex.MALE;
sex_maleRadioButton.setIcon(new ImageIcon(getClass().getResource("/pictures/male.JPG")));
sex_femaleRadioButton.setIcon(null);
sex_maleRadioButton.setSelected(true);
sex_femaleRadioButton.setSelected(false);
}
if(evt.getSource() == sex_femaleRadioButton)
{
inSex = Sex.FEMALE;
sex_femaleRadioButton.setIcon(new ImageIcon(getClass().getResource("/pictures/female.JPG")));
sex_maleRadioButton.setIcon(null);
sex_femaleRadioButton.setSelected(true);
sex_maleRadioButton.setSelected(false);
}
}
}
// 定义“安全设置”复选按钮监听器类
class SafetyChkListener implements ActionListener
{
public void actionPerformed(ActionEvent evt) {
if(pw_safetyCheckBox.isSelected())
{
tagLabel4.setEnabled(true);
tagLabel5.setEnabled(true);
questionLabel.setEnabled(true);
answerLabel.setEnabled(true);
questionsComboBox.setEnabled(true);
answerTextField.setEnabled(true);
noticTextArea.setEnabled(true);
}
if(!pw_safetyCheckBox.isSelected())
{
tagLabel4.setEnabled(false);
tagLabel5.setEnabled(false);
questionLabel.setEnabled(false);
answerLabel.setEnabled(false);
questionsComboBox.setEnabled(false);
answerTextField.setEnabled(false);
noticTextArea.setEnabled(false);
}
}
}
// 定义getUserInfo()函数,用来从用户注册界面获取信息
public UserInfo getUserInfo()
{
UserInfo temp = new UserInfo();
temp.cUserID = user_nameTextField.getText().trim();
temp.cPassword = String.valueOf(jPasswordField.getPassword());
temp.cUserName = nameTextField.getText().trim();
temp.cSex = inSex;
if(ageTextField.getText().compareTo("") == 0)
{
temp.iAge = 0;
}
else
{
temp.iAge = Integer.parseInt(ageTextField.getText().trim());
}
temp.cCity = cityTextField.getText().trim();
temp.vTel = telTextField.getText().trim();
temp.vSignature = signatureTextField.getText().trim();
if(pw_safetyCheckBox.isSelected())
{
temp.vQuestion = String.valueOf(questionsComboBox.getSelectedItem()).trim();
temp.vAnswer = answerTextField.getText().trim();
}
if(!pw_safetyCheckBox.isSelected())
{
temp.vQuestion = "";
temp.vAnswer = "";
}
return temp;
}
// 定义Check()函数,在客户端对输入的注册信息进行检测
public String checkInfo()
{
String msgReturn = "";
UserInfo data = (UserInfo)getUserInfo();
String repeatPw = String.valueOf(jPasswordField1.getPassword());
if(data.cUserID.compareTo("") == 0 || data.cPassword.compareTo("") == 0 || repeatPw.compareTo("") == 0)
{
msgReturn = "带 * 的项不能为空!";
}
else if(data.cPassword.length() < 6 || data.cPassword.length() >16 || repeatPw.length() < 6 || repeatPw.length() > 16)
{
msgReturn = "密码长度应该为6-16位!";
}
else if(data.cPassword.compareTo(repeatPw) != 0)
{
msgReturn = "重复输入密码不一致!";
}
else if(pw_safetyCheckBox.isSelected())
{
if(data.vQuestion.compareTo("") == 0 || data.vAnswer.compareTo("") == 0)
{
msgReturn = "带 * 的项不能为空!";
}
else if(data.vQuestion.length() > 20 || data.vAnswer.length() >20)
{
msgReturn = "问题和答案均为1-20位!";
}
}
return msgReturn;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -