简易聊天程序教程(五)客户端的登陆和注册窗口
2016-05-09 16:01
302 查看
源代码下载链接:http://download.csdn.net/detail/sky453589103/9514686
如果有什么问题,欢迎留言。
其实大家也能想到,登陆和注册窗口其实很相似的,而注册窗口总是比登陆窗口多一些内容。
先来说说登陆窗口。登陆窗口的界面如下图:
![](http://img.blog.csdn.net/20160509154034288?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
登陆窗口继承字Dialog类,而不是继承自JFrame类。登陆窗口显示在屏幕中间,通过下面的方法就可以达到效果:
处理的流程分为个方向:
1.按下登陆按钮,获取登录名和密码。然后发送请求报文张的command为login报文给服务器端,由服务器端执行登陆操作。密码使用的是JPasswordField类,要获取密码,就要使用它的getPassword方法来获得。
2.按下注册键,会在屏幕中间,显示注册窗口。注册窗口是登陆窗口的模态子窗口。所谓模态窗口与非模态的区别是,在这里就是如果不关闭注册窗口就不能选中登陆窗口,自然也就不能登陆窗口中输入。
注册窗口的界面效果如下图:
![](http://img.blog.csdn.net/20160509155024505?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
相比登陆窗口也只是多了两个JRadioButton而已。默认情况下选定的是male这个单选框,当按下另一个单选框就时,当前的单选框就会被取消选中,这是不能默认执行的,需要自己写代码实现:
如果按下了取消按钮,就关闭整个窗口。调用dispose()方法。这个方法会释放所有这个窗口的屏幕资源,包括它的子组件的资源。
如果按下了注册按钮,就向服务器发送command为singup的请求报文,并监听服务器返回的结果,如果出错则返回出错信息,成功也返回注册成功。出错信息通过一个信息窗口来显示,成功也类似:
如果有什么问题,欢迎留言。
其实大家也能想到,登陆和注册窗口其实很相似的,而注册窗口总是比登陆窗口多一些内容。
先来说说登陆窗口。登陆窗口的界面如下图:
登陆窗口继承字Dialog类,而不是继承自JFrame类。登陆窗口显示在屏幕中间,通过下面的方法就可以达到效果:
setLocationRelativeTo(null);在构造函数中调用这个方法,就能显示在屏幕中央,如果参数不是null,则显示的位置与传入的参数相关。
处理的流程分为个方向:
1.按下登陆按钮,获取登录名和密码。然后发送请求报文张的command为login报文给服务器端,由服务器端执行登陆操作。密码使用的是JPasswordField类,要获取密码,就要使用它的getPassword方法来获得。
2.按下注册键,会在屏幕中间,显示注册窗口。注册窗口是登陆窗口的模态子窗口。所谓模态窗口与非模态的区别是,在这里就是如果不关闭注册窗口就不能选中登陆窗口,自然也就不能登陆窗口中输入。
注册窗口的界面效果如下图:
相比登陆窗口也只是多了两个JRadioButton而已。默认情况下选定的是male这个单选框,当按下另一个单选框就时,当前的单选框就会被取消选中,这是不能默认执行的,需要自己写代码实现:
} else if (e.getSource() == maleRadioBtn) { maleRadioBtn.setSelected(true); femaleRadioBtn.setSelected(false); } else if (e.getSource() == femaleRadioBtn) { maleRadioBtn.setSelected(false); femaleRadioBtn.setSelected(true); }在源代码中,有一个void actionPerformed(ActionEvent e)函数来监听时间,并且通过这两个判断来让每次只能选中一个单选框。
如果按下了取消按钮,就关闭整个窗口。调用dispose()方法。这个方法会释放所有这个窗口的屏幕资源,包括它的子组件的资源。
如果按下了注册按钮,就向服务器发送command为singup的请求报文,并监听服务器返回的结果,如果出错则返回出错信息,成功也返回注册成功。出错信息通过一个信息窗口来显示,成功也类似:
JOptionPane.showMessageDialog(null, "fail to signup", "message",JOptionPane.INFORMATION_MESSAGE);
相关文章推荐
- 六款值得推荐的android(安卓)开源框架简介
- Nginx+Tomcat+Memcached负载均衡集群服务搭建
- iphone"此证书是由未知颁发机构签名的"的解决办法
- MySQL查询优化之explain
- 深入Java集合学习系列:ArrayList的实现原理
- HA下的Spark集群工作原理解密
- 实现linux上类似wc -l -w -c + 文本文件的函数
- Visual Studio 2013新建工程导入现有代码文件夹并且保持目录结构
- SpringMVC接收checkbox传值
- test12
- spring整合消息队列rabbitmq
- class-dump 执行失败
- Android TagFlowLayout完全解析 一款针对Tag的布局
- 一个复杂的堆排序程序
- Android显式调用第三方app
- (4.3.2.7) 关于onCreate(Bundle savedInstanceState, PersistableBundle persistentState)Activity跳转后显示空白界面
- CUGOJ 1682
- 在Eclipse中导入android项目,默认以Google API运行的解决办法
- Animator属性动画
- Netty-Mina深入学习与对比(一)