Java华容道小程序设计

本文介绍了如何使用Java设计一个华容道小游戏,包括利用布局管理器构建游戏界面,通过事件监听器(鼠标、键盘、焦点事件)实现按钮移动。程序要求包含自定义的按钮子类,用于表示游戏人物,并通过焦点事件改变颜色。同时,通过键盘和鼠标事件控制人物的上下左右移动。此外,还有一个'重新开始'功能,可以将所有人物复位,重新开始游戏。
摘要由CSDN通过智能技术生成

华容道游戏取自著名的三国故事,曹操在赤壁大战中被刘备和孙权的“苦肉计”、“火烧连营”打败,被迫退逃到华容道,又遇上诸葛亮的伏兵,关羽为了报答曹操对他的恩情,明逼实让,终于帮助曹操逃出了华容道。

要求:1.本程序主要练习使用布局管理器设计一个华容道游戏界面,并练习使用事件监听器(鼠标事件、键盘事件和焦点事件)实现按钮的移动。

2.编写一个按钮的子类,使用该子类创建的对象代表华容道中的人物。通过焦点事件控制人物颜色,当人物获得焦点时颜色为红色,当失去焦点时颜色为黄色。

3.通过键盘事件和鼠标事件来实现曹操、关羽等人物的移动。当人物上发生鼠标事件或键盘事件时,如果鼠标指针的位置是在人物的下方(也就是组件的下半部分)或按下键盘的“↓“键,该人物向下移动。向左、向右和向上的移动原理类似。

4.点击“重新开始”可以使各个按钮复位,重新开始游戏。

Hua_Rong_Road类:

package 华容道;

import javazoom.jl.player.Player;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class Hua_Rong_Road extends JFrame implements ActionListener, MouseListener, KeyListener {

    Person[] person = new Person[10]; // 10个人
    JButton left, right, above, below;// 边界
    JButton restart = new JButton("重新开始");
    JButton about = new JButton("游戏背景");
    JButton help = new JButton("游戏帮助");
    int i = 0;
    JLabel jLabel = new JLabel();//标签
    public Hua_Rong_Road() {
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//隐藏并释放窗体,dispose(),当最后一个窗口被释放后,则程序也随之运行结束
        setBounds(450, 0, 425, 700);//设置边框的大小
        setVisible(true);//设置视野可见
        validate();//使用插件时的初始化方法
    }

    public void init() {
        setResizable(false);//生成的窗体大小是由程序员决定的,用户不可以自由改变该窗体的大小。
        setDefaultCloseOperation(3);//直接关闭应用程序,System.exit(0)。
        i = 0;//记录步数
        setLayout(null);//流式布局绝对布局
        add(restart);//重新开始按钮
        restart.setBounds(140, 540, 120, 40);
        restart.addActionListener(this);
        add(about);//游戏背景按钮
        about.setBounds(10, 540, 120, 40);
        about.addActionListener(this);//事件监听对象,this指本身这个对象,这个类会实现监听器接口
        add(help);//游戏帮助按钮
        help.setBounds(270, 540, 120, 40);
        help.addActionListener(this);//事件监听对象,this指本身这个对象,这个类会实现监听器接口
        String[] name = {"曹操", "关羽", "马超", "黄忠", "张飞", "赵云", "兵", 
  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值