📄 registerdialog.java
字号:
package Java.ICQ;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import javax.swing.border.*;
public class RegisterDialog extends JFrame
{
//以下创建程序界面
JPanel panel1;
JLabel jLabel1 = new JLabel();
JTextField nickname = new JTextField();
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
JPasswordField password = new JPasswordField();
JLabel jLabel4 = new JLabel();
JTextField email = new JTextField();
JLabel jLabel5 = new JLabel();
JLabel jLabel6 = new JLabel();
JTextPane info = new JTextPane();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JLabel jLabel7 = new JLabel();
JRadioButton boy = new JRadioButton();
JRadioButton girl = new JRadioButton();
JLabel jLabel8 = new JLabel();
JComboBox place = new JComboBox();
JComboBox headpic = new JComboBox();
ButtonGroup btGroup=new ButtonGroup();
JScrollPane scrollpane=new JScrollPane();
String sername;//服务器名
int serverport;//服务器端口
String number;
private String[] pics = new String[]{//头像
"01.gif", "02.gif",
"03.gif", "04.gif"};
public RegisterDialog(String sername,int port)
{
this.sername=sername;
serverport=port;
initRegisterDailog();
}
public void initRegisterDailog()
{
initFrame();
initUI();
addFrame();
addListener();
}
//设置窗体信息
public void initFrame()
{
panel1 =(JPanel)this.getContentPane();
panel1.setLayout(null);
this.setTitle("注册");
this.setBounds(new Rectangle(300,300,400,400));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//初始化UI界面
public void initUI()
{
jLabel2.setText("请填写以下内容");
jLabel2.setBounds(new Rectangle(9, 9, 103, 18));
jLabel1.setText("昵称");
jLabel1.setBounds(new Rectangle(2, 45, 41, 18));
nickname.setBounds(new Rectangle(50, 44, 128, 22));
jLabel3.setText("密码");
jLabel3.setBounds(new Rectangle(200, 44, 41, 18));
password.setBounds(new Rectangle(247, 42, 100, 22));
jLabel4.setText("电子邮件");
jLabel4.setBounds(new Rectangle(2, 102, 58, 18));
email.setBounds(new Rectangle(50, 96, 128, 22));
jLabel5.setText("头像");
jLabel5.setBounds(new Rectangle(200, 96, 51, 18));
headpic.setBounds(new Rectangle(247, 91, 71, 28));
for(int i=0;i < pics.length;i++)
{
headpic.addItem(getImage("images\\"+pics[i]));
}
jLabel7.setText("性别");
jLabel7.setBounds(new Rectangle(9, 154, 41, 18));
boy.setText("男");
boy.setBounds(new Rectangle(43, 150, 38, 26));
boy.setSelected(true);
girl.setText("女");
girl.setBounds(new Rectangle(80, 150, 46, 26));
girl.setSelected(false);
jLabel8.setText("来自");
jLabel8.setBounds(new Rectangle(147, 154, 41, 18));
place.setBounds(new Rectangle(181, 154, 163, 22));
String address[]={"四川","重庆","山东","湖南","北京"};
for(int i=0;i<address.length;i++)
{
place.addItem(address[i]);
}
jLabel6.setText("个人资料");
jLabel6.setBounds(new Rectangle(6, 189, 87, 18));
scrollpane.setBounds(new Rectangle(5, 208, 363, 103));
jButton1.setText("确定");
jButton1.setBounds(new Rectangle(147, 330, 79, 29));
jButton2.setText("取消");
jButton2.setBounds(new Rectangle(260, 329, 79, 29));
}
//添加组件到窗体上
public void addFrame()
{
panel1.add(jButton1, null);
panel1.add(jLabel2, null);
panel1.add(jLabel1, null);
panel1.add(nickname, null);
panel1.add(jLabel3, null);
panel1.add(password, null);
panel1.add(jLabel4, null);
panel1.add(email, null);
panel1.add(jLabel5, null);
panel1.add(jButton2, null);
panel1.add(jLabel6, null);
panel1.add(jLabel7, null);
panel1.add(boy, null);
panel1.add(jLabel8, null);
panel1.add(girl, null);
panel1.add(place, null);
panel1.add(headpic, null);
btGroup.add(boy);
btGroup.add(girl);
scrollpane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scrollpane.getViewport().add(info,null);
panel1.add(scrollpane, null);
this.setVisible(true);
}
//为每个按钮添加事件监听
public void addListener()
{
jButton1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jButton1_actionPerformed();
}
});
jButton2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jButton2_actionPerformed();
}
});
}
//获取头像
public ImageIcon getImage(String imagePath)
{
ImageIcon image = new ImageIcon(imagePath);
return image;
}
//确定按钮事件处理
public void jButton1_actionPerformed()
{
PrintWriter out=null;
BufferedReader in=null;
try
{
System.out.println(serverport);
System.out.println(sername);
Socket socket=new Socket(sername,serverport);//连接服务器
in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
}
catch(IOException e)
{
System.out.println("连接服务器失败");
JOptionPane.showMessageDialog(this,"连接服务器失败!","消息对话框",JOptionPane.INFORMATION_MESSAGE);
}
out.println("new");//发送新建用户请求
out.println(nickname.getText().trim());//发送呢称等信息
out.println(password.getPassword());
out.println(email.getText().trim());
if(boy.isSelected())
out.println("男");
if(girl.isSelected())
out.println("女");
out.println(info.getText().trim());
out.println(place.getSelectedItem());
out.println(headpic.getSelectedIndex());//head picindex
String str=" ";
try
{
str=in.readLine().trim();//从服务器读取信息
}
catch(IOException e)
{
System.out.println("从服务器读取错误");
}
System.out.println(str);
number = str.substring(0,str.indexOf("r"));
System.out.println(number);
if(str.endsWith("registerSucceed"))
{
JOptionPane.showMessageDialog(this,"注册成功!","消息对话框",JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(this,"您的OICQ号码为:"+number,"消息对话框",JOptionPane.INFORMATION_MESSAGE);
//如果成功就告诉用户其号码
this.dispose();//并打开主窗口
LoginFrame frame= new LoginFrame();
frame.setVisible(true);
}
if(str.equals("registerError"))
{
JOptionPane.showMessageDialog(this,"注册失败!","消息对话框",JOptionPane.INFORMATION_MESSAGE);
}
//如果出错
}
//取消按钮事件处理
public void jButton2_actionPerformed()
{
System.exit(0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -