当前位置: 首页 > 编程笔记 >

Java基于swing实现的弹球游戏代码

端木夕
2023-03-14
本文向大家介绍Java基于swing实现的弹球游戏代码,包括了Java基于swing实现的弹球游戏代码的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了Java基于swing实现的弹球游戏代码。分享给大家供大家参考。

主要功能代码如下:


package Game;

import java.awt.Graphics; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.Random;

import javax.swing.ButtonGroup; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JRadioButtonMenuItem;

/**  * 游戏界面类  *  * @author Administrator  *  */ public class Game extends javax.swing.JFrame {         private static final long serialVersionUID = 1L;         private static Game UI;         private Graphics g;         private Listener ml;         public javax.swing.JLabel text_field;         public javax.swing.JProgressBar pBar;         private String command;         public ArrayList<MyThread> list = new ArrayList<MyThread>();         private javax.swing.JToggleButton button;

        public static void main(String args[]) {                 UI = new Game();                 UI.initUI();         }

        /**          * 初始化窗体的方法          */         public void initUI() {                 // 设置标题                 this.setTitle("是高手就坚持10s");                 // 设置大小                 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);                 // 的到菜单条                 JMenuBar bar = creatMenuBar();                 // 为窗体设置菜单条                 this.setJMenuBar(bar);                 // 设置窗体的可见性                 this.setVisible(true);         }

        /**          * 创建菜单条的方法          *          * @return          */         public JMenuBar creatMenuBar() {                 // 创建菜单条对象                 JMenuBar bar = new JMenuBar();                 // 创建菜单对象                 JMenu menu_menu = new JMenu("菜单");                 JMenu difficulty_menu = new JMenu("难度");                 JMenu help_menu = new JMenu("帮助");                 // 创建菜单选项对象                 JMenuItem star_item = new JMenuItem("开始");                 JMenuItem exit_item = new JMenuItem("退出");                 JMenuItem help_item = new JMenuItem("游戏说明");                 JMenuItem about_item = new JMenuItem("关于");                 // 创建单选选项                 JRadioButtonMenuItem easy_item = new JRadioButtonMenuItem(                                 "简单");                 JRadioButtonMenuItem middle_item = new JRadioButtonMenuItem(                                 "中等");                 JRadioButtonMenuItem hard_item = new JRadioButtonMenuItem(                                 "困难");                 // 创建一个按钮组                 ButtonGroup group = new 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 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("游戏说明")) {                                         JOptionPane.showMessageDialog(null,                                                         "移动鼠标,用挡板接球,如果接不住,就算输了……\n游戏可以选择难度,包括简单、中等、困难");                                 }                                 if (command.equals("关于")) {                                         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) {                 Random ran = new Random();

                if (ml == null) {                         g = UI.getGraphics();                         ml = new Listener(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;         }

}


package Game;

import java.awt.Color; import java.awt.Graphics; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent;    /**  * 鼠标监听器的类  *   * @author Administrator  *   */  public class Listener extends MouseAdapter {      private Graphics g;      private int x = 5, y = 620;      private int width = 100, height = 10;        public Listener(Graphics g) {          this.g = g;      }        public void mouseMoved(MouseEvent e) {          // 设置画布对象颜色          synchronized (this.g) {              g.setColor(Color.black);              g.fillRect(x, y, width, height);              x = e.getX();              g.setColor(java.awt.Color.green);              g.fillRect(x, y, width, height);          }      }        /**      * 得到x的方法      *       * @return:x      */      public int getX() {          return x;      }    } 

运行效果如下图所示:

希望本文所述对大家的Java程序设计有所帮助。

 类似资料:
  • 本文向大家介绍java基于swing实现的五子棋游戏代码,包括了java基于swing实现的五子棋游戏代码的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java基于swing实现的五子棋游戏代码。分享给大家供大家参考。 主要功能代码如下:

  • 本文向大家介绍Java基于Swing实现的打猎射击游戏代码,包括了Java基于Swing实现的打猎射击游戏代码的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java基于Swing实现的打猎射击游戏代码。分享给大家供大家参考。 具体实现代码如下: 希望本文所述对大家的Java程序设计有所帮助。

  • 本文向大家介绍python3实现弹弹球小游戏,包括了python3实现弹弹球小游戏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python3实现弹弹球小游戏的具体代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍java实现桌球小游戏,包括了java实现桌球小游戏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java实现桌球小游戏的具体代码,供大家参考,具体内容如下 桌球小游戏 两张图片放在src的同级目录下 版本一、出现窗口 版本二、加载图 这儿的加载图片有个缓存问题,需要最小化窗口再打开 版本三、使小球动起来 版本四、使小球沿任意角度滚动 好了,这个最为简单的桌球游戏就算

  • 本文向大家介绍C语言实现反弹球小游戏,包括了C语言实现反弹球小游戏的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享了C语言反弹球游戏的具体代码,供大家参考,具体内容如下 这是利用函数写的C语言小游戏,用来检验自己的学习成果 反弹球的实现主要有几个子函数组成 问题也在于如何实现小球的下落,以及碰撞得分等情况 小编之前也收藏了一段代码:C语言实现小球反弹,分享给大家 以上就是本文的全部内容,希

  • 本文向大家介绍C语言实现简单弹球游戏,包括了C语言实现简单弹球游戏的使用技巧和注意事项,需要的朋友参考一下 电视机待机的屏幕上的弹球,怎么实现? 今天文章就跟大家分享下C语言实现简单弹球游戏的具体代码,供大家参考,具体内容如下 效果 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。