registerpane.java
来自「一个简单的程序稳操胜券用拖把有稳操胜券」· Java 代码 · 共 572 行 · 第 1/2 页
JAVA
572 行
regMessage.setType(10);
regMessage.setObj(user);
oos.writeObject(regMessage);
oos.flush();
ois = new ObjectInputStream(new BufferedInputStream(client.getInputStream()));
//ois = new ObjectInputStream(client.getInputStream());
//oos = new ObjectOutputStream(client.getOutputStream());
}
public void run() {
try {
while(ois!=null){
Object obj = ois.readObject();
if(obj instanceof JQMessage){
JQMessage message = (JQMessage)obj;
int type = message.getType();
switch (type) {
case 11:
RegUser xuser = (RegUser)message.getObj();
new RegSuccess(xuser,RegisterPane.this,true);
//btnOk.setEnabled(true);
closeClient();
break;
case 12:
JOptionPane.showMessageDialog(null, "注册失败!请重新注册!");
btnOk.setEnabled(true);
closeClient();
break;
case 90:
JOptionPane.showMessageDialog(null, message.getObj().toString());
closeClient();
System.exit(0);
break;
}
break;
}
}
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "发生错误,原因:"+e.getMessage());
closeClient();
} catch (ClassNotFoundException e) {
JOptionPane.showMessageDialog(null, "发生错误,原因:"+e.getMessage());
closeClient();
}
}
public void closeClient(){
try {
if(oos!=null)oos.close();oos = null;
if(ois!=null)ois.close();ois = null;
if(client!=null)client.close();client=null;
} catch (IOException e) {
System.out.println("错误:"+e.getMessage());
}
}
}
/**
* 注册成功窗口
* 2008-9-27
* @author 达内科技[Tarena Training Group]
* @version 1.0
* @since JDK1.6(建议)
*/
private class RegSuccess extends JDialog implements ActionListener{
private JTextArea txtInfo = new JTextArea();
private JButton btnLogin = new JButton("直接登录");
private JButton btnReturn = new JButton("返回登陆界面");
private RegUser user;
public RegSuccess(RegUser user,Frame owner, boolean modal) {
super(owner,modal);
this.user = user;
setSize(250,190);
setResizable(false);
Toolkit tk=Toolkit.getDefaultToolkit();
setLocation((tk.getScreenSize().width-getSize().width)/2,(tk.getScreenSize().height-getSize().height)/2);
setTitle("注册信息");
txtInfo.setText("恭喜!"+user.getRealname()+",注册成功!\n"+
"用户昵称:"+user.getNickname()+"\n"+
"登陆号码:"+user.getJqnum()+"\n"+
"登陆密码:"+user.getPassword()+"\n"+
"请妥善保管您的号码和密码!");
txtInfo.setEditable(false);
txtInfo.setOpaque(true);
txtInfo.setBackground(this.getBackground());
txtInfo.setPreferredSize(new Dimension(200,100));
txtInfo.setBorder(new TitledBorder(new LineBorder(Color.DARK_GRAY)," 注册信息 "));
setLayout(new FlowLayout(FlowLayout.CENTER,10,10));
btnLogin.addActionListener(this);
btnReturn.addActionListener(this);
add(txtInfo);
add(btnLogin);
add(btnReturn);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==btnLogin){
dispose();
RegisterPane.this.dispose();
new MainPane(txtServerIP.getText(),Integer.parseInt(txtServerPort.getText()),user.getJqnum(),user.getPassword(),UserState.ONLINESTATE.getState());
}
if(e.getSource()==btnReturn){
dispose();
RegisterPane.this.dispose();
new LoginPane();
}
}
}
/**
* 选择头像窗口
* 2008-9-27
* @author 达内科技[Tarena Training Group]
* @version 1.0
* @since JDK1.6(建议)
*/
private class ChooseProtrait extends JDialog implements ActionListener{
private JButton[] btnPortrait = new JButton[158];
private Portrait[] portraits = new Portrait[158];
private JLabel lblBoys = new JLabel("男士头像(共30个)");
private JLabel lblGirls = new JLabel("女士头像(共29个)");
private JLabel lblAnimals = new JLabel("动物头像(共36个)");
private JLabel lblOthers = new JLabel("其他头像(共63个)");
private JLabel lblViewInfo = new JLabel("预览:");
private JLabel lblPhotoView = new JLabel();
private JButton btnP_Ok = new JButton("确定");
private JButton btnP_Cancle = new JButton("取消");
public ChooseProtrait() {
setTitle("选择头像");
setSize(500,440);
setResizable(false);
Toolkit tk=Toolkit.getDefaultToolkit();
setLocation((tk.getScreenSize().width-getSize().width)/2,(tk.getScreenSize().height-getSize().height)/2);
btnP_Ok.setSize(80,20);
btnP_Ok.setLocation(300, 375);
btnP_Ok.addActionListener(this);
btnP_Cancle.setSize(80,20);
btnP_Cancle.setLocation(400, 375);
btnP_Cancle.addActionListener(this);
//初始化按钮,并将头像显示的按钮上
for(int i=0;i<btnPortrait.length;i++){
btnPortrait[i] = new JButton();
btnPortrait[i].setMargin(new Insets(0,0,0,0));
btnPortrait[i].setPreferredSize(new Dimension(50,50));
btnPortrait[i].addActionListener(this);
btnPortrait[i].setOpaque(true);
btnPortrait[i].setBackground(Color.WHITE);
}
//初始化预览头像
lblPhotoView.setOpaque(true);
lblPhotoView.setBackground(Color.WHITE);
lblPhotoView.setHorizontalAlignment(SwingConstants.CENTER);
lblPhotoView.setPreferredSize(new Dimension(50,50));
lblPhotoView.setBorder(new LineBorder(Color.DARK_GRAY));
lblPhotoView.setIcon(lblPhoto.getIcon());
lblPhotoView.setSize(50,50);
lblPhotoView.setLocation(420, 40);
lblViewInfo.setSize(60,20);
lblViewInfo.setLocation(425, 10);
initJLabel(lblBoys);
initJLabel(lblGirls);
initJLabel(lblAnimals);
initJLabel(lblOthers);
JPanel paneBoys = getPane(0, 30);
JPanel paneGirls = getPane(30, 60);
JPanel paneAnimals = getPane(60, 96);
JPanel paneOthers = getPane(96, 158);
JPanel panePortrait = new JPanel();
panePortrait.setPreferredSize(new Dimension(380,1500));
panePortrait.setOpaque(true);
panePortrait.setBackground(Color.WHITE);
panePortrait.add(lblBoys);
panePortrait.add(paneBoys);
panePortrait.add(lblGirls);
panePortrait.add(paneGirls);
panePortrait.add(lblAnimals);
panePortrait.add(paneAnimals);
panePortrait.add(lblOthers);
panePortrait.add(paneOthers);
JScrollPane sp = new JScrollPane(panePortrait);
sp.setSize(400,350);
sp.setLocation(10,5);
setLayout(null);
JPanel paneAll = new JPanel();
paneAll.setSize(480,365);
paneAll.setLocation(5, 0);
paneAll.setOpaque(true);
paneAll.setBackground(Color.WHITE);
paneAll.setBorder(new LineBorder(Color.BLACK));
paneAll.setLayout(null);
paneAll.add(sp);
paneAll.add(lblViewInfo);
paneAll.add(lblPhotoView);
add(paneAll);
add(btnP_Ok);
add(btnP_Cancle);
//启动多线程加载头像到按钮上,加快对话框的显示时间
new Thread(){
public void run() {
for(int i=0;i<btnPortrait.length;i++){
portraits[i] = new Portrait(i+1);
btnPortrait[i].setIcon(portraits[i]);
}
}
}.start();
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setVisible(true);
}
/**
* 初始化一些面板,仅仅为简便方法。
* @param pane
*/
private void initJLabel(JLabel pane){
pane.setOpaque(true);
pane.setBackground(new Color(226,247,254));
pane.setPreferredSize(new Dimension(380,25));
pane.setBorder(new LineBorder(Color.BLACK));
}
/**
* 根据开始和结束获得面板。
* @param begin 开始的头像位置。
* @param end 结束的头像位置。
* @return 添加好头像的面板。
*/
private JPanel getPane(int begin,int end){
JPanel pane = new JPanel();
pane.setOpaque(true);
pane.setBackground(Color.WHITE);
pane.setLayout(new GridLayout(0,7,5,5));
for(int i = begin;i<end;i++)
pane.add(btnPortrait[i]);
return pane;
}
public void actionPerformed(ActionEvent e) {
//点击确定时更改选择的图像
if(e.getSource()==btnP_Ok){
lblPhoto.setIcon(lblPhotoView.getIcon());
dispose();
return;
}
//点击确定时关闭选择图像的窗口
if(e.getSource()==btnP_Cancle){
dispose();
return;
}
//如果是图像的按钮时,显示图想到浏览头像面板上
int i = -1;
for(i=0;i<btnPortrait.length;i++){
if(e.getSource()==btnPortrait[i])
break;
}
if(i<btnPortrait.length){
lblPhotoView.setIcon(portraits[i]);
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?