📄 tower.java
字号:
package chapter1;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Tower extends JFrame implements ActionListener,Runnable
{
HannoiTower tower = null;
JButton renew,start=null;
int numberOfDisk;
int width,heigth;//the size of the largest disk
TextArea text = null;
Thread thread = null;
public Tower()
{
thread = new Thread(this);
numberOfDisk = 5;
width = 80;
heigth = 18;
text = new TextArea(12,12);
text.setText(null);
tower = new HannoiTower(numberOfDisk,width,heigth,text);
renew = new JButton("Refresh");
start = new JButton("Start");
renew.addActionListener(this);
start.addActionListener(this);
JPanel con= new JPanel(new FlowLayout());
con.add(renew);
con.add(start);
add(tower , BorderLayout.CENTER);
add(con,BorderLayout.SOUTH);
add(text,BorderLayout.EAST);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
setBounds(60,20,670,540);
setTitle("Hannoi");
validate();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==renew)
{
if(!(thread.isAlive()))
{
this.remove(tower);
text.setText(null);
tower = new HannoiTower(numberOfDisk,width,heigth,text);
add(tower , BorderLayout.CENTER);
validate();
}
}
if(e.getSource()==start)
{
if(!thread.isAlive())
{
thread = new Thread(this);
}
try
{
thread.start();
}catch(Exception e1){}
}
}
public void run()
{
this.remove(tower);
text.setText(null);
tower = new HannoiTower(numberOfDisk,width,heigth,text);
add(tower , BorderLayout.CENTER);
validate();
tower.autoShow(numberOfDisk,'A','B','C');
}
public static void main(String[] args)
{
new Tower();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -