package 弹球;

import java.awt.Insets;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.Color;

import javax.swing.JOptionPane;

/**

* 游戏界面类

*

* @author Administrator

*

*/

public class GameUI extends javax.swing.JFrame {

private static GameUI UI;

private java.awt.Graphics g;

private MyListener ml;

public javax.swing.JLabel text_field;

public javax.swing.JProgressBar pBar;

private String command;

public java.util.ArrayList list = new java.util.ArrayList();

private javax.swing.JToggleButton button;

public static void main(String args[]) {

UI = new GameUI();

UI.initUI();

}

/**

* 初始化窗体的方法

*/

public void initUI() {

// 设置标题

this.setTitle("是高手就坚持100s");

// 设置大小

this.setSize(610, 635);

// 设置关闭是退出程序

this.setDefaultCloseOperation(3);

// 设置打开窗体时在屏幕中间显示

this.setLocationRelativeTo(null);

// 设置窗体的流式布局管理器

this.setLayout(new java.awt.FlowLayout());

// 设置窗体背景颜色

this.getContentPane().setBackground(java.awt.Color.black);

// 创建文本标签对象

text_field = new javax.swing.JLabel();

javax.swing.JLabel lable = new javax.swing.JLabel("时 间 :");

// 设置文本标签前景颜色

lable.setForeground(java.awt.Color.red);

text_field.setForeground(java.awt.Color.red);

// 创建进度条对象

pBar = new javax.swing.JProgressBar(0, 330);

// 创建按钮对象

button = new javax.swing.JToggleButton();

button.setMargin(new Insets(0, 0, 0, 0));

button.setIcon(new javax.swing.ImageIcon("images/Pause.gif"));

button.setActionCommand("暂停");

// 通过匿名内部类来创建动作监听器

java.awt.event.ActionListener button_listener = new java.awt.event.ActionListener() {

public void actionPerformed(ActionEvent e) {

String com = e.getActionCommand();

if (com.equals("暂停")) {

button.setMargin(new Insets(0, 0, 0, 0));

button

.setIcon(new javax.swing.ImageIcon(

"images/start.gif"));

button.setActionCommand("继续");

for (int i = 0; i < list.size(); i++) {

list.get(i).PauseThread();

}

}

if (com.equals("继续")) {

button.setMargin(new Insets(0, 0, 0, 0));

button

.setIcon(new javax.swing.ImageIcon(

"images/Pause.gif"));

button.setActionCommand("暂停");

for (int i = 0; i < list.size(); i++) {

list.get(i).ContinueThread();

}

}

}

};

button.addActionListener(button_listener);

this.add(button);

this.add(lable);

this.add(pBar);

this.add(text_field);

// 的到菜单条

javax.swing.JMenuBar bar = creatMenuBar();

// 为窗体设置菜单条

this.setJMenuBar(bar);

// 设置窗体的可见性

this.setVisible(true);

}

/**

* 创建菜单条的方法

*

* @return

*/

public javax.swing.JMenuBar creatMenuBar() {

// 创建菜单条对象

javax.swing.JMenuBar bar = new javax.swing.JMenuBar();

// 创建菜单对象

javax.swing.JMenu menu_menu = new javax.swing.JMenu("菜单");

javax.swing.JMenu difficulty_menu = new javax.swing.JMenu("难度");

javax.swing.JMenu help_menu = new javax.swing.JMenu("帮助");

// 创建菜单选项对象

javax.swing.JMenuItem star_item = new javax.swing.JMenuItem("开始");

javax.swing.JMenuItem exit_item = new javax.swing.JMenuItem("退出");

javax.swing.JMenuItem help_item = new javax.swing.JMenuItem("游戏说明");

javax.swing.JMenuItem about_item = new javax.swing.JMenuItem("关于");

// 创建单选选项

javax.swing.JRadioButtonMenuItem easy_item = new javax.swing.JRadioButtonMenuItem(

"简单");

javax.swing.JRadioButtonMenuItem middle_item = new javax.swing.JRadioButtonMenuItem(

"中等");

javax.swing.JRadioButtonMenuItem hard_item = new javax.swing.JRadioButtonMenuItem(

"困难");

// 创建一个按钮组

javax.swing.ButtonGroup group = new javax.swing.ButtonGroup();

// 将单选按钮添加到按钮组中

group.add(easy_item);

group.add(middle_item);

group.add(hard_item);

// 将单选按钮添加到菜单中

difficulty_menu.add(easy_item);

difficulty_menu.add(middle_item);

difficulty_menu.add(hard_item);

// 通过匿名内部类来创建动作监听器

ActionListener listener = new java.awt.event.ActionListener() {

public void actionPerformed(ActionEvent e) {

command = e.getActionCommand();

// 如果选择开始,则创建线程对象

if (command.equals("开始") && list.size() == 0) {

creatBall(20, 1);

}

// 如果选择退出按钮,则退出程序

if (command.equals("退出")) {

System.exit(0);

}

// 如果选择简单按钮

if (command.equals("简单") && list.size() == 0) {

creatBall(20, 1);

}

// 如果选择中等按钮

if (command.equals("中等") && list.size() == 0) {

creatBall(50, 2);

}

if (command.equals("困难") && list.size() == 0) {

creatBall(40, 2);

}

if (command.equals("游戏说明")) {

javax.swing.JOptionPane.showMessageDialog(null,

"移动鼠标,用挡板接球,如果接不住,就算输了……\n游戏可以选择难度,包括简单、中等、困难");

}

if (command.equals("关于")) {

javax.swing.JOptionPane

.showMessageDialog(null,

"这是一个用Java编写的小游戏……\n制作人:沈冠军\n时间:2010年8月\n版权所有,翻版必究!");

}

}

};

// 添加动作监听器

star_item.addActionListener(listener);

exit_item.addActionListener(listener);

easy_item.addActionListener(listener);

middle_item.addActionListener(listener);

hard_item.addActionListener(listener);

help_item.addActionListener(listener);

about_item.addActionListener(listener);

// 将菜单选项对象添加到菜单对象上

menu_menu.add(star_item);

menu_menu.add(exit_item);

help_menu.add(help_item);

help_menu.add(about_item);

// 将菜单对象添加到菜单条上

bar.add(menu_menu);

bar.add(difficulty_menu);

bar.add(help_menu);

// 返回菜单条对象

return bar;

}

/**

* 创建线程对象的方法

*

* @param speed

* :速度

*

*/

public void creatBall(int speed, int num) {

java.util.Random ran = new java.util.Random();

if (ml == null) {

g = UI.getGraphics();

ml = new MyListener(g);

UI.addMouseListener(ml);

UI.addMouseMotionListener(ml);

}

for (int i = 0; i < num; i++) {

int x = ran.nextInt(600) + 10;

int y = ran.nextInt(300) + 100;

MyThread th = new MyThread(g, ml, UI, x, y, speed);

list.add(th);

th.start();

}

}

/**

* 得到命令的方法

*/

public String getCommand() {

return command;

}

}

java实现弹球游戏_Java swing版弹球游戏源代码下载相关推荐

  1. java大作业的打猎游戏_Java Swing打猎射击游戏源码

    Java Swing打猎射击游戏源码 代码如下package Game;import java.awt.Graphics;import java.awt.Image;import javax.swin ...

  2. java射击游戏_Java Swing打猎射击游戏源码

    代码如下 package Game; import java.awt.Graphics; import java.awt.Image; import javax.swing.JPanel; publi ...

  3. java做飞机大战_Java+swing版飞机大战

    Java小游戏实训--飞机大战 一.实验目的 使用Java+swing实现飞机大战小游戏 二.实验要求 1.掌握Java的基本语法. 2.掌握面向对象的编程思想. 3.掌握利用swing布局游戏界面的 ...

  4. java开源游戏下载安装_开源java扫雷游戏,Swing版。

    开源java扫雷游戏,Swing版. xC6JnAIE.zip (60.07 KB) 开源java扫雷游戏,Swing版. 程序文件说明 文件 内容 备注 AboutFrame.java 程序&quo ...

  5. unity3d游戏2d横版射击游戏完整项目源码分享

    unity3d游戏2d横版射击游戏完整项目源码分享 免费下载地址: 链接:https://pan.baidu.com/s/1YwhEy7DeKIHFU8pBLdJFPg 提取码:3wnx 复制这段内容 ...

  6. JAVA 实现《泡泡堂基础版》游戏

    前言 <泡泡堂基础版>是一个基于java的自制游戏,游戏设计为双人pk积分赛模式,在这个模式里面,玩家只要率先达到一定分数既可以赢得比赛.玩家可以通过炸箱子可以得到少量的分数,也可以通过炸 ...

  7. 用java雷电游戏_Java实现仿雷电游戏

    [实例简介]Java实现仿雷电游戏 [实例截图] [核心代码] package cqu; import java.awt.BorderLayout; import javax.swing.JFrame ...

  8. java做五子棋 视频_java swing实现五子棋小游戏项目源码附带视频指导运行教程...

    <p> <span style="color:#555555;font-family:"font-size:16px;background-color:#FFFF ...

  9. java 横版游戏开发_用MyEclipse的Java Project开发仿DNF横版格斗游戏

    这些天,我正在用MyEclipse的Java Project开发一款仿DNF 横版格斗游戏. http://v.youku.com/v_show/id_XMTI5MTE0NDg4MA==.html 这 ...

最新文章

  1. python从入门到精通书-Python从入门到精通
  2. shutil python_shutil模块
  3. aws技术峰会2018_AWS re:Invent 2018的5大公告
  4. jQuery选择器种类整理
  5. java浮点数数转二进制的数吗_深入理解计算机系统(2.7)-二进制小数和IEEE浮点标准 - Java 技术驿站-Java 技术驿站...
  6. sqli-lab——Writeup21~38(各种过滤绕过WAF和)
  7. 基于信息流的安全格模型
  8. CentOS6.5安装nginx1.5.8时出现“cp: conf/koi-win 与/usr/local/nginx/conf/koi-win 为同一文件”的解决方法...
  9. 从Spark-Shell到SparkContext的函数调用路径过程分析(源码)
  10. axios_的请求响应结果的结构---axios工作笔记006
  11. 这个 SpringCloud+Vue 在线教育系统,牛得起飞!
  12. CentOS7安装dnf报错:No package dnf available
  13. 51单片机存储器结构
  14. RCWL-0516微波雷达感应开关 人体感应传感器,迷你多普勒雷达
  15. java开发工具eclipse中@author怎么改
  16. 黑马程序员_IO输入输出流
  17. 人工智能的“斯芬克斯之谜”
  18. linux绝育玩客云_绝育老母鸡(玩客云)PT下载补充。如何过新手考核
  19. Docker 容器健康检查机制
  20. adam算法效果差原因_深度学习优化器-Adam两宗罪

热门文章

  1. 多普勒流量计测流系统
  2. ios Objective-c 地图选择城市
  3. 编译内核启用KASan动态检测内核内存错误功能(ubuntu16.04 4.4.0内核编译升级到linux-4.4.252版本)
  4. PKG_PROG_PKG_CONFIG: command not found
  5. php 正则表达式 菜鸟,正则表达式菜鸟教程.pdf
  6. Modbus通讯协议简介
  7. 深度学习-图像处理之误差传播、权重更新及优化器
  8. DWCC2018基本网页设计注意要点、使用技巧
  9. ios生命周期 uiviewController的生命周期(3)
  10. 学会扒源码-HashMap