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

📄 window.java~1~

📁 带背景音乐的汉诺塔自动演示程序!采用JBuilder开发环境!
💻 JAVA~1~
字号:
package hannoi;

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.sound.midi.*;
import java.io.*;

public class window extends JFrame implements ActionListener, Runnable {
    Tower tower = null;
    JPanel btnpanel = new JPanel(new FlowLayout());
    JPanel pp = new JPanel();
    JButton renew, auto = null;
    char towerName[] = {'A', 'B', 'C'};
    int 盘子数目, 盘宽, 盘高;
    Thread thread;
    TextArea 信息条 = null;
    JMenuBar jMenuBar1 = new JMenuBar();
    JMenu 游戏 = new JMenu();
    JMenu 音乐 = new JMenu();
    JMenu 帮助 = new JMenu();
    JMenuItem 开始 = new JMenuItem();
    JMenuItem 退出 = new JMenuItem();
    JMenuItem 暂停 = new JMenuItem();
    JMenuItem 继续 = new JMenuItem();
    JMenuItem 演示 = new JMenuItem();
    JMenuItem 关于 = new JMenuItem();
    MidMusic music;

    public window(String title, String songPath) {
        super(title);
        thread = new Thread(this);
        music = new MidMusic(songPath);
        盘子数目 = 6;
        盘宽 = 100;
        盘高 = 18;
        信息条 = new TextArea(12, 12);
        信息条.setText(null);
        tower = new Tower(盘子数目, 盘宽, 盘高, towerName, 信息条);
        try {
            jbTint();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    private void jbInit() throws Exception {
        setBounds(100, 100, 660, 480); //窗口大小以及显示位置
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        this.setJMenuBar(jMenuBar1); // 设置菜单栏
        游戏.setPreferredSize(new Dimension(56, 25));
        游戏.setText("游戏");
        音乐.setPreferredSize(new Dimension(56, 25));
        音乐.setText("音乐");
        帮助.setPreferredSize(new Dimension(56, 25));
        帮助.setText("帮助");
        开始.setText("开始");
        开始.addActionListener(this);
        退出.setText("退出");
        退出.addMouseListener(new MouseAdapter() {
            public void mouseReleased(MouseEvent e) {
                退出_mouseReleased(e);
            }
        });
        暂停.setText("暂停");
        暂停.addMouseListener(new MouseAdapter() {
            public void mouseReleased(MouseEvent e) {
                暂停_mouseReleased(e);
            }
        });
        继续.setText("继续");
        继续.addMouseListener(new MouseAdapter() {
            public void mouseReleased(MouseEvent e) {
                继续_mouseReleased(e);
            }
        });
        演示.setText("演示");
        演示.addActionListener(this);
        关于.setText("关于");
        关于.addMouseListener(new MouseAdapter() {
            public void mouseReleased(MouseEvent e) {
                关于_mouseReleased(e);
            }
        });
        this.setResizable(false);
        jMenuBar1.add(游戏);
        jMenuBar1.add(音乐);
        jMenuBar1.add(帮助);
        游戏.add(开始);
        游戏.add(退出);
        音乐.add(暂停);
        音乐.add(继续);
        帮助.add(演示);
        帮助.add(关于);
        renew = new JButton("重新开始");
        auto = new JButton("自动演示搬盘子");
        renew.addActionListener(this);
        auto.addActionListener(this);
        btnpanel.add(renew);
        btnpanel.add(auto);
        add(pp, "West");
        add(tower, "Center");
        add(btnpanel, "South");
        add(信息条, "East");
        setVisible(true);
        validate();
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == renew || e.getSource() == 开始) {
            if (!(thread.isAlive())) {
                this.remove(tower);
                信息条.setText(null);
                tower = new Tower(盘子数目, 盘宽, 盘高, towerName, 信息条);
                add(tower, BorderLayout.CENTER);
                validate();
            } else {
            }
        }
        if (e.getSource() == auto || e.getSource() == 演示) {
            if (!(thread.isAlive())) {
                thread = new Thread(this);
            }
            try {
                thread.start();
            } catch (Exception eee) {}
        }
    }

    public void 退出_mouseReleased(MouseEvent e) {
        System.exit(0);
    }

    public void 暂停_mouseReleased(MouseEvent e) {
        MidMusic.cut();
    }

    public void 继续_mouseReleased(MouseEvent e) {
        MidMusic.play();
    }

    public void 关于_mouseReleased(MouseEvent e) {
        AboutBox dlg = new AboutBox();
        Dimension dlgSize = dlg.getPreferredSize();
        Dimension frmSize = getSize();
        Point loc = getLocation();
        dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x,
                        (frmSize.height - dlgSize.height) / 2 + loc.y);
        dlg.setModal(true);
        dlg.pack();
        dlg.setVisible(true);
    }

    public void run() {
        this.remove(tower);
        信息条.setText(null);
        tower = new Tower(盘子数目, 盘宽, 盘高, towerName, 信息条);
        add(tower, BorderLayout.CENTER);
        validate();
        tower.自动演示搬运盘子(盘子数目, towerName[0], towerName[1], towerName[2]);
    }

    public static void main(String[] args) {
        new window("汉诺塔游戏", "Romanic.mid");
    }


}

⌨️ 快捷键说明

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