⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gameview.java

📁 windows自带的扫雷游戏
💻 JAVA
字号:
package mine.view;

import mine.model.*;
import mine.*;
import mine.view.*;
import mine.listener.*;
import javax.swing.*;
import java.awt.*;
import mine.control.*;

public class GameView
    extends JPanel
    implements TimeListener, InitListener {
    //timelistener
    QQButton qqbutton = new QQButton();
    MineLeaveView mineleaveview = new MineLeaveView();
    TimeView timeview = new TimeView();
    BlockViewsPanel blockViewsPanel = new BlockViewsPanel();
    GameConfigure gameconfig = GameConfigure.getInstance();
    JFrame frame;
    GameModel gamemodel;
    JPanel statusPanel = new JPanel();
    JPanel centerPanel = new JPanel();
    PanelManager panelManager = new PanelManager();
    public GameView(JFrame frame) {
        this.frame = frame;
        init();
    }

    public void init() {
        FlowLayout fl = new FlowLayout(FlowLayout.CENTER, 0, 0);
        centerPanel.setLayout(fl);
        centerPanel.add(qqbutton);
        centerPanel.setMinimumSize(new Dimension(28, 28));
        statusPanel.setLayout(new BorderLayout());
        statusPanel.add(mineleaveview, BorderLayout.WEST);
        statusPanel.add(centerPanel, BorderLayout.CENTER);
        statusPanel.add(timeview, BorderLayout.EAST);
        statusPanel.setSize(10, 28); //只为了高度
        panelManager.addGamePanel(blockViewsPanel, statusPanel);
        this.setSize(panelManager.getSize());
        this.setLayout(null);
        this.add(panelManager);
        frame.setSize(this.getWidth() + 7, this.getHeight() + 70);
        SwingUtilities.updateComponentTreeUI(frame);
    }

    public void setModel(GameModel gm) {
        gamemodel = gm;
        qqbutton.setModelAction(gm); //button和模型的联系
        gm.setGameTimeListener(this);
        gm.setMineLeaveCountListener(mineleaveview); //剩余雷数
        gm.setInitListener(this);
        blockViewsPanel.setModel(gm);
        blockViewsPanel.setGameMouselistener(qqbutton);
    }

//----------------------------------------
    public void gameTimeChange(int timenumber) {
        timeview.gameTimeChange(timenumber);
    }

    public void gameTimeEnd(int endreason) {
        qqbutton.gameTimeEnd(endreason);
        blockViewsPanel.gameTimeEnd(endreason);
        if (endreason == 0) {
            if (gameconfig.isNewRecorder(gameconfig.getLevel(),
                                         gamemodel.getGametime())) {
                UsernameDialog ud = new UsernameDialog(frame);
                String username = ud.getUsername();
                gameconfig.setGameRecoder(gameconfig.getLevel(),
                                          gamemodel.getGametime(),
                                          username);
            }
        }



    }

    public void gameTimeStart() {
        qqbutton.gameTimeStart();
    }

    public void gameinit() {
        timeview.init();
        blockViewsPanel.init();
        mineleaveview.init();
        qqbutton.init();
        init();

    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -