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

📄 程序界面.java

📁 图搜索策略九宫重排演示程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		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 + -