Linux汉诺塔程序,汉诺塔

package com.lyh.han;

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();

}

}

2fd19bac55fa5c89f9ebbaff4e2c8f90-wm

1339fc56dc27d98fd351ce054ed21e11-wm

949ec0de2a439e71938ad512dd7dda28-wm

59336d60b43a58a248cd0f4bcaa80478-wm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值