最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java基于swing實現(xiàn)的彈球游戲代碼

 更新時間:2014年11月11日 15:40:02   投稿:shichen2014  
這篇文章主要介紹了Java基于swing實現(xiàn)的彈球游戲代碼,包含了窗體界面設計與游戲的邏輯功能處理,具有不錯的參考借鑒價值,需要的朋友可以參考下

本文實例講述了Java基于swing實現(xiàn)的彈球游戲代碼。分享給大家供大家參考。

主要功能代碼如下:

復制代碼 代碼如下:

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);
                // 創(chuàng)建文本標簽對象
                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);

                // 創(chuàng)建進度條對象
                pBar = new javax.swing.JProgressBar(0, 330);
                // 創(chuàng)建按鈕對象
                button = new javax.swing.JToggleButton();
                button.setMargin(new Insets(0, 0, 0, 0));
                button.setIcon(new javax.swing.ImageIcon("images/Pause.gif"));
                button.setActionCommand("暫停");
                // 通過匿名內(nèi)部類來創(chuàng)建動作監(jiān)聽器
                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("繼續(xù)");
                                        for (int i = 0; i < list.size(); i++) {
                                                list.get(i).PauseThread();

                                        }

                                }
                                if (com.equals("繼續(xù)")) {

                                        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);
        }

        /**
         * 創(chuàng)建菜單條的方法
         *
         * @return
         */
        public JMenuBar creatMenuBar() {
                // 創(chuàng)建菜單條對象
                JMenuBar bar = new JMenuBar();
                // 創(chuàng)建菜單對象
                JMenu menu_menu = new JMenu("菜單");
                JMenu difficulty_menu = new JMenu("難度");
                JMenu help_menu = new JMenu("幫助");
                // 創(chuàng)建菜單選項對象
                JMenuItem star_item = new JMenuItem("開始");
                JMenuItem exit_item = new JMenuItem("退出");
                JMenuItem help_item = new JMenuItem("游戲說明");
                JMenuItem about_item = new JMenuItem("關于");
                // 創(chuàng)建單選選項
                JRadioButtonMenuItem easy_item = new JRadioButtonMenuItem(
                                "簡單");
                JRadioButtonMenuItem middle_item = new JRadioButtonMenuItem(
                                "中等");
                JRadioButtonMenuItem hard_item = new JRadioButtonMenuItem(
                                "困難");
                // 創(chuàng)建一個按鈕組
                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);
                // 通過匿名內(nèi)部類來創(chuàng)建動作監(jiān)聽器
                ActionListener listener = new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                command = e.getActionCommand();
                                // 如果選擇開始,則創(chuàng)建線程對象
                                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版權所有,翻版必究!");
                                }
                        }
                };
                // 添加動作監(jiā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;
        }

        /**
         * 創(chuàng)建線程對象的方法
         *
         * @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;   
/**
 * 鼠標監(jiān)聽器的類
 * 
 * @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程序設計有所幫助。

相關文章

  • SpringBoot發(fā)送短信驗證碼的實例

    SpringBoot發(fā)送短信驗證碼的實例

    第三方短信發(fā)送平臺有很多種,各個平臺有各自的優(yōu)缺點,在選擇的時候可以根據(jù)自己的具體實際情況定奪,本文主要介紹了SpringBoot發(fā)送短信驗證碼的實例,感興趣的可以了解一下
    2022-02-02
  • springboot中如何判斷某個bean是否存在

    springboot中如何判斷某個bean是否存在

    這篇文章主要介紹了springboot中如何判斷某個bean是否存在,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • JSON數(shù)據(jù)轉換成Java對象的方法

    JSON數(shù)據(jù)轉換成Java對象的方法

    就目前來講,將Java對象轉換成JSON對象還是相當簡單的,但是 將JSON對象轉換成Java對象,就相對比較復雜了些
    2014-03-03
  • 詳解SpringBoot中@NotNull,@NotBlank注解使用

    詳解SpringBoot中@NotNull,@NotBlank注解使用

    這篇文章主要為大家詳細介紹了Spring?Boot中集成Validation與@NotNull,@NotBlank等注解的簡單使用,感興趣的小伙伴可以跟隨小編一起學習一下
    2022-08-08
  • Java使用substring()截取(提取)子字符串

    Java使用substring()截取(提取)子字符串

    這篇文章主要介紹了Java使用substring()截取(提取)子字符串,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • Java過濾器模式原理及用法實例

    Java過濾器模式原理及用法實例

    這篇文章主要介紹了Java過濾器模式原理及用法實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • 詳解springcloud組件consul服務治理

    詳解springcloud組件consul服務治理

    Consul是一款由HashiCorp公司開源的,用于服務治理的軟件,Spring Cloud Consul對其進行了封裝,這篇文章主要介紹了springcloud組件consul服務治理,需要的朋友可以參考下
    2022-08-08
  • SpringBoot Mybatis 配置文件形式詳解

    SpringBoot Mybatis 配置文件形式詳解

    這篇文章主要介紹了SpringBoot Mybatis 配置文件形式詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • 淺談Java面向對象之內(nèi)部類

    淺談Java面向對象之內(nèi)部類

    內(nèi)部類是一個非常有用的特性但又比較難理解使用的特性,我們從外面看是非常容易理解的,無非就是在一個類的內(nèi)部在定義一個類。其實使用內(nèi)部類最大的優(yōu)點就在于它能夠非常好的解決多重繼承的問題
    2021-06-06
  • java 實現(xiàn)隨機數(shù)組輸出及求和實例詳解

    java 實現(xiàn)隨機數(shù)組輸出及求和實例詳解

    這篇文章主要介紹了java 實現(xiàn)隨機數(shù)組輸出及求和實例詳解的相關資料,需要的朋友可以參考下
    2016-11-11

最新評論

米林县| 常州市| 乐山市| 百色市| 盐亭县| 白银市| 芒康县| 毕节市| 宿松县| 寻乌县| 隆林| 峨边| 通州市| 米泉市| 南安市| 凤冈县| 清河县| 合水县| 阜平县| 丁青县| 观塘区| 九台市| 南靖县| 莒南县| 曲靖市| 军事| 晋中市| 广丰县| 赤城县| 万载县| 东源县| 田东县| 华坪县| 临沧市| 南郑县| 曲水县| 盈江县| 葵青区| 河池市| 商河县| 武乡县|