JR与图形用户界面(GUIs)的交互
1. 图形用户界面概述
图形用户界面(GUIs)正变得越来越普遍、强大、灵活且易于使用。例如,Swing和AWT工具包使Java程序能够轻松包含图形用户界面。图形用户界面对于可视化并发程序的执行也很有用。
2. “Balls and Boxes”(BnB)游戏介绍
BnB是一个多人游戏,可在多个系统上进行,每个系统一名玩家。每个玩家会看到一个游戏窗口,该窗口仅显示该系统上的游戏状态,并通过系统的键盘和鼠标与游戏进行交互。不过,该游戏也可以由单个玩家在单个系统上进行,在单个系统上,游戏可以显示单个窗口或多个窗口。在多个窗口的情况下,用户仍通过键盘和鼠标根据哪个窗口获得焦点来进行交互。
游戏窗口包含菜单、按钮和棋盘区域。菜单和按钮用于创建新球,每次点击菜单会创建一个绿色或橙色的球,每次点击按钮会创建一个蓝色球和一个红色球。棋盘区域最初会分配一个盒子,每个窗口在每场游戏中只有一个盒子。球和盒子会在棋盘区域内移动,球会自动从左向右移动,在顶部和底部之间曲折移动,碰到顶部或底部会反弹。当球到达右边界时,它会移动到右侧的下一个窗口或绕回到第一个窗口,每个球在移动一定次数后会消失。盒子由用户通过键盘控制移动,当盒子到达左或右边界时,会分别移动到上一个或下一个窗口,但不能超出顶部或底部边界,盒子会在整个游戏期间存在。
3. BnB代码概述
BnB程序由以下类组成:
- Main:主程序,为每个玩家创建一个Window,并将其放置在各自的虚拟机上,还会给每个棋盘提供所有棋盘的远程引用,以便棋盘之间可以传递球和盒子。
- Window:代表一个窗口,创建游戏所需的图形组件,包