亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

Java基于swing實現的彈球游戲代碼

2019-11-26 15:21:34
字體:
來源:轉載
供稿:網友

本文實例講述了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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久国产精品视频| 久久精品国产清自在天天线| 日韩综合视频在线观看| 亚洲精品乱码久久久久久金桔影视| 成人黄色在线播放| 日韩免费看的电影电视剧大全| 成人福利在线观看| 精品国偷自产在线视频99| 亚洲欧美中文另类| 久久97精品久久久久久久不卡| 伊人久久久久久久久久| 国产亚洲成精品久久| 日韩av手机在线| 亚洲色图av在线| 国产91在线播放精品91| 亚洲一区制服诱惑| 日韩美女激情视频| 精品久久久国产精品999| 亚洲国产精品va在线看黑人动漫| 91免费国产网站| 国产精品av电影| 中文字幕亚洲国产| 亚洲欧美国产制服动漫| 欧美中文在线字幕| 国产精品白嫩美女在线观看| 欧美三级免费观看| 国产一区欧美二区三区| 91久久精品国产91久久| 日韩欧美视频一区二区三区| 在线观看国产精品日韩av| 欧美另类精品xxxx孕妇| 亚洲女人天堂成人av在线| 中文日韩电影网站| 亚洲全黄一级网站| 日韩av电影在线网| 欧美大片va欧美在线播放| 九九热这里只有精品免费看| 中文字幕不卡在线视频极品| 国产精品精品视频一区二区三区| www欧美xxxx| 国产一区二区三区在线观看网站| 日韩国产欧美精品一区二区三区| 色综合色综合久久综合频道88| 亚洲综合小说区| 亚洲人成网站色ww在线| 国内揄拍国内精品少妇国语| 久久久久久网址| 国产精品亚洲网站| 国产精品久久久久一区二区| 久久在线免费视频| 在线观看精品国产视频| 国产综合福利在线| 国产美女精品视频免费观看| 97国产精品免费视频| 97香蕉久久超级碰碰高清版| 国语对白做受69| 国产一区二区三区18| 性色av一区二区三区| 98精品国产高清在线xxxx天堂| 日韩美女在线观看一区| 欧美一区二区大胆人体摄影专业网站| 国产精品69av| 国产不卡一区二区在线播放| 91精品视频在线播放| 国产91|九色| 国产精品视频中文字幕91| 亚洲图片欧美日产| 国产精品视频永久免费播放| 国产精品91久久| 欧美午夜片在线免费观看| 国产精品亚洲综合天堂夜夜| 91九色国产视频| www.欧美视频| 日韩性xxxx爱| 色偷偷综合社区| 久久中国妇女中文字幕| 国产精品视频白浆免费视频| 国产精品亚洲片夜色在线| 亚洲欧美激情一区| 亚洲欧美日韩精品| 日韩视频在线免费| 久久久久久亚洲精品不卡| 国产91精品久久久久| 国产狼人综合免费视频| 国产情人节一区| 91九色国产视频| 亚洲精品99久久久久| 2019中文字幕在线免费观看| 一本色道久久88精品综合| 欧美日韩国内自拍| 欧美日韩亚洲国产一区| 亚洲qvod图片区电影| 国产精品一区久久久| 欧美精品手机在线| 色综合久久久888| 久久视频在线播放| 久久久人成影片一区二区三区| 欧美激情在线狂野欧美精品| 欧美日本高清视频| 国模吧一区二区| 国产精品福利观看| 久久亚洲电影天堂| 亚洲石原莉奈一区二区在线观看| 亚洲第一福利网站| 国产精品自产拍在线观| 精品国产精品三级精品av网址| 精品免费在线视频| 欧美日韩成人在线观看| 欧美亚洲另类视频| 国产精品美女视频网站| 亚洲精品久久久久中文字幕欢迎你| 亚洲人成电影在线播放| 日韩精品久久久久久久玫瑰园| 欧美综合国产精品久久丁香| 国产一区玩具在线观看| 精品国产电影一区| 国产成人精品在线| 国产精品久久77777| 国产视频欧美视频| 亚洲第一区在线观看| 色综合久久精品亚洲国产| www.欧美免费| 中文字幕无线精品亚洲乱码一区| 精品自拍视频在线观看| 亚洲free性xxxx护士白浆| 亚洲精品一区久久久久久| 亚洲午夜色婷婷在线| 日韩成人在线播放| 成人伊人精品色xxxx视频| 精品福利在线看| 欧美男插女视频| 亚洲性69xxxbbb| 日韩最新av在线| 国自产精品手机在线观看视频| 亚洲成色www8888| 亚洲一级黄色av| 欧美孕妇与黑人孕交| 欧美国产精品人人做人人爱| 国产福利精品av综合导导航| 两个人的视频www国产精品| 欧美成人精品在线播放| 亚洲字幕一区二区| 久久九九国产精品怡红院| 国产精品久久久久久久av大片| 3344国产精品免费看| 日韩亚洲欧美中文高清在线| 这里只有精品视频在线| 国产美女91呻吟求| 91在线观看免费高清完整版在线观看| 国产噜噜噜噜久久久久久久久| 一区二区欧美亚洲| 欧美激情精品久久久久久大尺度| 国产日韩精品视频| 欧美日韩亚洲成人| 国产精品第2页| 在线日韩日本国产亚洲| 亚洲人高潮女人毛茸茸| 欧美国产日产韩国视频| 狠狠综合久久av一区二区小说| 91国产精品电影| 国内精品久久久久影院优| 日韩精品一区二区视频| 欧美国产日产韩国视频| 国产精品99久久久久久www|