使用NetBeans制作一个猜拳游戏

实例的客户端面板如图所示:
在这里插入图片描述
客户端的布局:
1、 一个猜拳项目的文件:NIOClient
在这里插入图片描述

2、 新建Jframe窗体,叫ClientUI
3、 在窗体里添加面板等,按照如上图所示添加组件(所有的滚动窗格都是文本区域)
4、 请出拳中添加的三个按钮,删除文字,添加图片
将需要用的图片添加到源包下面的一个包里(直接从文件夹中拖拽过来即可)
选中button 在右边属性栏里找 icon 属性,选中图片后即可自动添加

客户端的协议:
1、 添加一个协议Protocol
在这里插入图片描述

2、 创建一个方法,报没有返回值的错,所以 再添加一个返回值为空
在这里插入图片描述

3、 先在协议里面定义几个变量
在这里插入图片描述

4、 下面开始实现协议内容
a) 创建一个随机生成数对象 报错就import
在这里插入图片描述

b) 下面就是选择判断了 选择分支语句
在这里插入图片描述

c) 补充里面的分支1(石头剪刀布 服务器出哪一个)
在这里插入图片描述

d) 分支2
在这里插入图片描述

e) 分支3
在这里插入图片描述

f) 返回值是answer,answer是一句话 在break的括弧外面 那个null就不要了
在这里插入图片描述

5、 回到服务端 Server 设计界面 双击 启动服务器按钮
在这里插入图片描述

6、 在跳转的界面的最上面 粘贴 报错 import
在这里插入图片描述7、 回到启动服务器事件 按下变灰
在这里插入图片描述

8、 再加 先不抛异常 但是import
在这里插入图片描述

9、 继续 不try
在这里插入图片描述

10、 继续 不try 但是下面有个import
在这里插入图片描述

11、 连接完成之后 输出的一段话
在这里插入图片描述

12、 Try catch语句块 从第二个开始import 然后 删除catch的内容
13、 双击事件总体代码展示
在这里插入图片描述

14、 运行一下试试 点击启动服务器 有服务器开始侦听客户机连接就对了
在这里插入图片描述

选择器的轮询:还包含在上一个的catch下面
1、 new一个线程
在这里插入图片描述

2、 在新线程里面加个东西
在这里插入图片描述

3、 在上面的{}里添加内容 报错内容是删除catch字句 但是删除之后又回到第二步了 所以现在你先不删除
在这里插入图片描述

4、 放在try后的{里 都import之后 还有两个错误 doAccept什么的 先不管 下面再改
在这里插入图片描述接下来:
定义处理连接的成员函数doAccept
定义数据交换的成员函数 doRead
1、 为了使用选择器管理 Channel, 我们需要将 Channel 注册到选择器中(目前不知道放在哪里)
listenChannel.register(selector, SelectionKey.OP_ACCEPT)
clientChannel.register(selector, SelectionKey.OP_READ,protocol)
2、 在上节课的start 后面添加程序 先不管异常 这是因为抛异常 但是没有异常 所以才报错
在这里插入图片描述

3、 加在上面的函数里 import一个 然后还会有个错误 先不管
在这里插入图片描述

4、 紧接着继续粘贴
在这里插入图片描述

5、 处理下那个错误 粘贴的位置错了 重新把整个函数粘贴在事件的外面 粘贴到start括号的外面 就没错了
在这里插入图片描述

6、 在刚才的成员函数下面再粘贴
在这里插入图片描述

7、 下面添加读的内容 在函数里面 有错 import
在这里插入图片描述

8、 定义字符集 import
在这里插入图片描述

9、 取出附加信息
在这里插入图片描述

10、 取出来之后,清空一次缓冲区再读
在这里插入图片描述

11、 指针回到起点 从起点开始 取出所有数据
在这里插入图片描述

12、 调用协议 计算回复的信息应该是什么
在这里插入图片描述

13、 协议回复的信息是这种类型的:serverSide+“#”+result;
14、 存好/读取信息 准备发送
在这里插入图片描述

15、 继续 接上面
在这里插入图片描述

16、 服务器端目前就算做完了 下面就可以打包:右击项目名称—打包为—仅图像(就是这个!!!你没看错!!!)
再右击项目名称—属性——查看项目文件的路径—进入这个文件夹路径—查看会多出一个dist文件夹就是了
运行这个打好的包
在这里插入图片描述
客户端的连接服务器按钮:
1、 ClientUI 双击 连接服务器按钮 但是先不做这些,还是要现在最上面粘贴一些定义 该import的import
在这里插入图片描述
在这里插入图片描述

2、 回到连接服务按钮 txtRemotePort报错的话 把它复制粘过去
在这里插入图片描述

3、 下面一块 粘过来的线import import之后抛异常 抛语句块 再然后 修改抛的异常 就没有错了
在这里插入图片描述

4、 让连接按钮不可用 连接服务器连接一次就可以了
在这里插入图片描述

5、 回到设计界面,另外的三个按钮剪刀石头布,出拳之后,玩家界面的图片得改,并且服务器出什么也会变。首先,双击石头
在这里插入图片描述

6、 先判断连没连上服务器
在这里插入图片描述

7、 先写try catch的括号 因为现在没有异常,所以报错,先不管
在这里插入图片描述

8、 下面的内容全都放在抛异常的try里面 先显示玩家出的图片,就是你点击了石头,所以这里应该是显示石头,import,但是catch还会报错,不管它
在这里插入图片描述

9、 再玩家出显示锤子
在这里插入图片描述

10、 紧接着 这里有了IO,下面的catch IO异常就不会再报错了
在这里插入图片描述

11、 上面是发,这里是收
在这里插入图片描述

12、 继续接着上面
在这里插入图片描述

13、 判断胜负
在这里插入图片描述

14、 更新标签
在这里插入图片描述

15、 剪刀和布,把石头的程序都复制过去,改下面圈出来的地方就可以了
在这里插入图片描述

16、 运行效果
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值