📄 window.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 + -