import javax.swing.*; import java.awt.*; import java.awt.event.*; public class HannoiWindow extends JFrame implements ActionListener{ Tower tower=null; int amountOfDisc=3; char []towerName={'A','B','C'}; JMenuBar bar; JMenu menuGrade; JMenuItem oneGradeItem,twoGradeItem,threeGradeItem; JButton renew=null; JButton autoButton=null; JPanel center=new JPanel(); HannoiWindow(){ tower=new Tower(towerName); tower.setAmountOfDisc(amountOfDisc); tower.setMaxDiscWidth(120); tower.setMinDiscWidth(50); tower.setDiscHeight(16); tower.putDiscOnTower(); add(tower,BorderLayout.CENTER); bar=new JMenuBar(); menuGrade=new JMenu("选择级别"); oneGradeItem=new JMenuItem("初级"); twoGradeItem=new JMenuItem("中级"); threeGradeItem=new JMenuItem("高级"); menuGrade.add(oneGradeItem); menuGrade.add(twoGradeItem); menuGrade.add(threeGradeItem); bar.add(menuGrade); setJMenuBar(bar); oneGradeItem.addActionListener(this); twoGradeItem.addActionListener(this); threeGradeItem.addActionListener(this); renew=new JButton("重新开始"); renew.addActionListener(this); autoButton=new JButton("自动演示"); autoButton.addActionListener(this); JPanel north=new JPanel(); north.add(renew); north.add(autoButton); String mess="将全部盘子从"+towerName[0]+"座搬运到"+towerName[1]+ "座或"+towerName[2]+"座"; JLabel hintMess=new JLabel(mess,JLabel.CENTER); north.add(hintMess); add(north,BorderLayout.NORTH); setResizable(false); setVisible(true); setBounds(60,60,460,410); validate(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e){ if(e.getSource()==oneGradeItem){ amountOfDisc=3; tower.setAmountOfDisc(amountOfDisc); tower.putDiscOnTower(); } else if(e.getSource()==twoGradeItem){ amountOfDisc=4; tower.setAmountOfDisc(amountOfDisc); tower.putDiscOnTower(); } else if(e.getSource()==threeGradeItem){ amountOfDisc=5; tower.setAmountOfDisc(amountOfDisc); tower.putDiscOnTower(); } else if(e.getSource()==renew){ tower.setAmountOfDisc(amountOfDisc); tower.putDiscOnTower(); } else if(e.getSource()==autoButton){ tower.setAmountOfDisc(amountOfDisc); tower.putDiscOnTower(); int x=this.getBounds().x+this.getBounds().width; int y=this.getBounds().y; tower.getAutoMoveDisc().setLocation(x,y); tower.getAutoMoveDisc().setSize(280,this.getBounds().height); tower.getAutoMoveDisc().setVisible(true); } validate(); } public static void main(String args[]){ new HannoiWindow(); } }
2022-06-29 14:58:39 3KB java 汉诺塔
1
自己写的小的汉诺塔图形演示程序,里面有些参数自己手动修改吧,盘子是5个。要写课设应付任务的有福啦哈哈
2022-06-12 08:49:15 11KB java 汉诺塔演示 算法
1
很好的课程设计,java版本的汉诺塔,大家可以下载。别忘了评论啊。
2022-06-12 08:44:09 276KB java 汉诺塔
1
这是汉诺塔小游戏java版源码,希望对大家有所帮助
2021-12-26 19:34:28 2.3MB java 汉诺塔 河内塔 源码
1
有三根柱子A,B,C,A柱子上有N个盘子,从小到大依次叠放,要求把A上的盘子都移到C上,B可以作为临时存放,移动的时候必须始终遵循小盘子在大盘子上面,且每次只能移动一个盘子。
2021-12-19 20:25:25 756B Java ,汉诺塔, 递归算法
1
这是一个很好的Java编写的汉诺塔演示程序。代码清晰,并且有注释。
2021-12-19 16:13:14 11KB Java 汉诺塔 演示程序
1
JAVA汉诺塔可视化设计(含源码) 含详细设计和概要分析 JAVA汉诺塔可视化设计(含源码) 含详细设计和概要分析JAVA汉诺塔可视化设计(含源码) 含详细设计和概要分析
1
eclipse java 实现汉诺塔,界面实现,建好项目,在src中直接导入即可
2021-12-19 11:52:13 4KB java汉诺塔
1
这是一个利用用递归方法输出汉诺塔的移动过程的java小程序,很典型
2021-03-16 11:12:51 451B java 汉诺塔
1
大体实现了汉诺塔java语言下图形用户界面的动画功能,面向对象设计了三个简单的类,但很多细节还有待完善,可供参考,VERSION 1.0
2020-01-03 11:17:12 95KB Hanoi
1