📄 程序界面.java
字号:
Object objTemp=e.getSource();
Graphics g=this.cvCurNode.getGraphics();
//设置最大考察结点数按钮被单击
if(objTemp==this.btnSetMaxNodeNum)
{
int maxnum=Integer.parseInt(this.txtSetMaxNodeNum.getText());
this.最大考察结点数=maxnum;
this.txtaSay.appendText("你把最大考擦结点数设置为了:"+maxnum+"\n\n");
}
//设置延迟时间的按钮被单击
else if(objTemp==this.btnSetTime)
{
this.每帧延时=Long.parseLong(this.txtSetTime.getText());
this.txtaSay.appendText("你把每帧延迟时间设置为了:"+this.每帧延时+"\n\n");
}
//设置有界深度的按钮被单击
else if(objTemp==this.btnSetSearchDepth)
{
this.九宫图.有界深度=Integer.parseInt(this.txtSetSearchDepth.getText());
this.九宫图.初始化();
this.九宫图.置当前结点(this.九宫图.取开始结点());
this._绘制当前结点(g);
this.txtaSay.appendText("你把有界深度优先搜索的有界深度设置为了:"+this.九宫图.有界深度+"\n\n");
}
//“自动搜索”按钮被单击
else if(objTemp==this.btnAutoSearch)
{
if(this.动画方式==程序界面.动画方式_显示搜索全过程)
{
this.txtaSay.appendText("自动搜索开始\n\n");
this.txtaSay.appendText("搜索正在进行,请耐心等待...\n\n");
if(this.九宫图.搜索是否完成==false)
{
this._初始化();
this.九宫图.置当前结点(this.九宫图.取开始结点());
this._绘制当前结点(g);
while(this._单步搜索()!=true
&&this.九宫图.CLOSE表.size()<=this.最大考察结点数)
{
this._绘制当前结点(g);
this._延时();
}
this._绘制当前结点(g);
this.九宫图.生成解路径();
this.九宫图.计算搜索效率();
this.解路径指针=this.九宫图.解路径.size()-1;
this.解全过程指针=this.九宫图.CLOSE表.size()-1;
this.btnPre.enable();
}
else
{
while(this.解全过程指针<this.九宫图.CLOSE表.size())
{
this._绘制搜索全过程(g);
this.解全过程指针++;
this._延时();
}
}
this.txtaSay.appendText("搜索完成!\n\n");
}
else if(this.动画方式==程序界面.动画方式_显示解路径)
{
while(this.解路径指针<this.九宫图.解路径.size())
{
this._绘制解路径(g);
this.解路径指针++;
this._延时();
}
}
}
//“上一步”按钮被单击
else if(objTemp==this.btnPre)
{
if(this.动画方式==程序界面.动画方式_显示搜索全过程)
{
if(this.解全过程指针-1>=0) this.解全过程指针--;
this._绘制搜索全过程(g);
}
else if(this.动画方式==程序界面.动画方式_显示解路径)
{
if(this.解路径指针-1>=0) this.解路径指针--;
this._绘制解路径(g);
}
}
//“下一步”按钮被单击
else if(objTemp==this.btnNext)
{
if(this.动画方式==程序界面.动画方式_显示搜索全过程)
{
if(this.九宫图.搜索是否完成==false)
{
if(this._单步搜索()==true)
{
this.九宫图.生成解路径();
this.解路径指针=this.九宫图.解路径.size()-1;
this.解全过程指针=this.九宫图.CLOSE表.size()-1;
}
this._绘制当前结点(this.cvCurNode.getGraphics());
}
else
{
if(this.解全过程指针+1<this.九宫图.CLOSE表.size())
this.解全过程指针++;
if(this.解全过程指针<this.九宫图.CLOSE表.size())
this._绘制搜索全过程(g);
}
}
else if(this.动画方式==程序界面.动画方式_显示解路径)
{
if(this.解路径指针+1<this.九宫图.解路径.size())
this.解路径指针++;
if(this.解路径指针<this.九宫图.解路径.size())
this._绘制解路径(g);
}
}
//“初始化”按钮被单击
else if(objTemp==this.btnInit)
{
if(this.动画方式==程序界面.动画方式_显示搜索全过程)
{
if(this.九宫图.搜索是否完成==false)
{
this._初始化();
this.九宫图.置当前结点(this.九宫图.取开始结点());
this._绘制当前结点(g);
}
else
{
this.解全过程指针=0;
this._绘制搜索全过程(g);
}
}
else if(this.动画方式==程序界面.动画方式_显示解路径)
{
this.解路径指针=0;
this._绘制解路径(g);
}
}
//“解信息”按钮被单击
else if(objTemp==this.btnShowSearchInfo)
{
this.txtaSay.appendText(this.九宫图.toString());
}
else if(objTemp==this.btnIntroduce)
{
this.txtaSay.setText("本程序实现了对重排九宫问题的求解\n"
+"本程序演示了人工智能中的图搜索策略\n"
+"实现了对重排九宫问题的6种搜索求解:\n"
+" 1.广度优先搜索\n"
+" 2.深度优先搜索\n"
+" 3.有界深度优先搜索\n"
+" 4.最好优先搜索\n"
+" 5.局部择优搜索\n"
+"关于本程序的详细使用方法请参阅《使用说明》\n");
}
else if(objTemp==this.btnAboutme)
{
this.txtaSay.setText("本程序作者:\n"
+"西北工业大学\n"
+"计算机学院\n"
+"11424班 陈凯\n"
+"学号 022301\n"
+"我的网站 http://rockcarry.home.sunbo.net\n"
+"联系方式 rockcarry@163.com\n");
}
else if(objTemp==this.btnClear)
{
this.txtaSay.setText("");
}
}
public void itemStateChanged(ItemEvent e)
{
Object objTemp=e.getItemSelectable();
Graphics g=this.cvStartEnd.getGraphics();
//“预置”被单击
if(objTemp==this.cbxPreSet)
{
this._初始化();
this.九宫图.开始结点.到预置状态();
this.九宫图.置当前结点(this.九宫图.取开始结点());
this._绘制开始目标结点(g);
this._绘制当前结点(this.cvCurNode.getGraphics());
this.动画方式=程序界面.动画方式_显示搜索全过程;
this.txtaSay.appendText("你选择了预设的开始状态\n\n");
}
//“随机生成”被单击
else if(objTemp==this.cbxRand)
{
this._初始化();
this.九宫图.开始结点.随机化();
this.九宫图.置当前结点(this.九宫图.取开始结点());
this._绘制开始目标结点(g);
this._绘制当前结点(this.cvCurNode.getGraphics());
this.动画方式=程序界面.动画方式_显示搜索全过程;
this.txtaSay.appendText("你选择了随机生成的开始状态\n\n");
}
//选择搜索方法
else if(objTemp==this.ccSelectMethod)
{
this.lbSetSearchDepth.disable();
this.txtSetSearchDepth.disable();
this.btnSetSearchDepth.disable();
this.搜索方法=((Choice)objTemp).getSelectedIndex();
if(this.搜索方法==程序界面.搜索法_有界深度优先)
{
this.lbSetSearchDepth.enable();
this.txtSetSearchDepth.enable();
this.btnSetSearchDepth.enable();
}
this._初始化();
this.九宫图.置当前结点(this.九宫图.取开始结点());
this._绘制当前结点(this.cvCurNode.getGraphics());
this.txtaSay.appendText("你选择了搜索方法:"
+((Choice)objTemp).getSelectedItem()+"\n\n");
}
//“显示搜索全过程”被单击
else if(objTemp==this.cbxShowAll)
{
this.动画方式=程序界面.动画方式_显示搜索全过程;
this.txtaSay.appendText("你选择了动画方式:"
+"显示搜索全过程"+"\n\n");
this.btnAutoSearch.enable();
this.btnNext.enable();
this.btnInit.enable();
if(this.九宫图.搜索是否完成==true)
{
this.btnPre.enable();
}
else
{
this.btnPre.disable();
}
}
//“显示解路径”被单击
else if(objTemp==this.cbxShowPath)
{
this.动画方式=程序界面.动画方式_显示解路径;
this.txtaSay.appendText("你选择了动画方式:"
+"显示解路径"+"\n\n");
if(this.九宫图.搜索是否完成==true)
{
this.btnAutoSearch.enable();
this.btnPre.enable();
this.btnNext.enable();
this.btnInit.enable();
this.解路径指针=0;
this._绘制解路径(this.cvCurNode.getGraphics());
}
else
{
this.btnAutoSearch.disable();
this.btnPre.disable();
this.btnNext.disable();
this.btnInit.disable();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -