📄 hanoactionevent.java
字号:
package hannota;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.regex.Pattern;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.text.html.Option;
public class HanoActionEvent implements ActionListener {
HanoPanel panel;
public HanoActionEvent(HanoPanel panel) {
this.panel = panel;
}
// 重置所以的盘子
public void reset() {
// 如果已经选择了一个盘子,但是这是又选择重置,则要还原该盘子
if (panel.hanomouseevent.selectedPanel != null) {
// panel.hanomouseevent.selectedPanel.setBackground(Color.yellow);
panel.hanomouseevent.selectedPanel = null;
}
// 将27个面板容器中的组件清空
for (int i = 0; i < 30; i++) {
if (i % 10 != 0) {
panel.hanoPanel[i].removeAll();
}
}
// 重新将盘子放入第一个塔面板中
panel.addDishes(panel.level);
// 重画每个面板
for (int i = 0; i < 30; i++) {
if (i % 10 != 0) {
// 重画每个面板
panel.hanoPanel[i].updateUI();
}
}
// 设置显示信息
panel.prompt.setText("开始游戏,祝你成功!");
}
// 正确代码不用管了
// 设置盘子的个数
private void createconfig() {
String src;
boolean flag;
src = JOptionPane.showInputDialog(panel, "请输入盘子数:(1-9)", panel.level);
if (src == null) {
JOptionPane.showMessageDialog(panel, "参数设置失败");
return;
}
// 使用了JAVA的正则表达式去验证输入的是否是1到9的数字
flag = Pattern.compile("[1-9]{1}").matcher(src).matches();
if (flag) {
panel.level = Integer.valueOf(src);
// 重置
reset();
JOptionPane.showMessageDialog(panel, "设置成功!");
} else {
JOptionPane.showMessageDialog(panel, "输入无效!设置不成功!", "错误",
JOptionPane.ERROR_MESSAGE);
}
}
public void actionPerformed(ActionEvent e) {
//鼠标事件
if (panel == null)
return;
if (e.getActionCommand().equals("重置"))
reset();
if (e.getActionCommand().equals("设置等级"))
createconfig();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -