📄 frame1.java~116~
字号:
drawTable.setTable(table);
if (index < table.number) {
drawTable.setCurrent(++index);
drawTable.repaint();
}
if (index == table.number) { //重新开始
index = -1;
binaryTreePostOrder.setText("后序遍历");
binaryTreePreOrder.setEnabled(true);
binaryTreeInOrder.setEnabled(true);
}
}
void treePreOrder_actionPerformed(ActionEvent e) {
if (table.isEmpty() == true) {
return;
}
//使其他功能按钮不能使用
text.setEnabled(false);
binaryTreePreOrder.setEnabled(false);
binaryTreeInOrder.setEnabled(false);
binaryTreePostOrder.setEnabled(false);
treePreOrder.setEnabled(true);
treePostOrder.setEnabled(false);
treePreOrder.setText("下一步");
tree.preOrder(); //中序遍历
table = tree.table;
drawTable.setTable(table);
if (index < table.number) {
drawTable.setCurrent(++index);
drawTable.repaint();
}
if (index == table.number) { //重新开始
index = -1;
treePreOrder.setText("先根遍历");
treePostOrder.setEnabled(true);
}
}
void treePostOrder_actionPerformed(ActionEvent e) {
if (table.isEmpty() == true) {
return;
}
//使其他功能按钮不能使用
text.setEnabled(false);
binaryTreePreOrder.setEnabled(false);
binaryTreeInOrder.setEnabled(false);
binaryTreePostOrder.setEnabled(false);
treePreOrder.setEnabled(false);
treePostOrder.setEnabled(true);
treePostOrder.setText("下一步");
tree.postOrder(); //中序遍历
table = tree.table;
drawTable.setTable(table);
if (index < table.number) {
drawTable.setCurrent(++index);
drawTable.repaint();
}
if (index == table.number) { //重新开始
index = -1;
treePostOrder.setText("后根遍历");
treePreOrder.setEnabled(true);
}
}
void reset_actionPerformed(ActionEvent e) {
table = new Table(); //表格数据,记录了节点的坐标等信息
tree = new Tree(); //树
binaryTree = new BinaryTree(); //二叉树
autoThread = null; //基本运行线程
index = -1;
//flag = new String(); //是树还是二叉树的标志“Tree”“BinaryTree”
fps = 1000; //频率
/******************************************************
//drawTable=new DrawPanel();
切记,不要再新建一个对象了!!
*********************************************************/
drawTable.InitDrawPanel();
drawTable.repaint();
text.setEnabled(true);
text.setText(null);
binaryTreePreOrder.setEnabled(true);
binaryTreeInOrder.setEnabled(true);
binaryTreePostOrder.setEnabled(true);
treePreOrder.setEnabled(true);
treePostOrder.setEnabled(true);
binaryTreePreOrder.setText("先序遍历");
binaryTreeInOrder.setText("中序序遍历");
binaryTreePostOrder.setText("后序序遍历");
treePreOrder.setText("先根遍历");
treePostOrder.setText("后根遍历");
/*DrawPanel d=new DrawPanel();
this.drawTable=d;
//drawTable=new DrawPanel();
//drawTable.setTable(table);
this.drawTable.repaint();
//jRadioButtonBT.updateUI();
//jRadioButtonTree.updateUI();
//drawTable.setBackground(Color.white);*/
}
void auto_actionPerformed(ActionEvent e) {
if (autoThread == null){//如果当前自动演示线程为空
//**************************************************
//按键之后创造一个新的Runnable给线程引用TheTraffic,来进行显示的有关操作
Runnable begin = new Runnable() {
public void run() { //必须声明catch InterruptedException e
try {
for (int i = 0; i < table.number; i++) {//For..循环顺序显示灯
Thread.sleep(1000);
drawTable.setCurrent(i);
drawTable.repaint(); //重画
if (i == table.number)
i = 0;//循环演示
}
}
catch (InterruptedException e) {
return; //被打断则结束本线程。
}
}
};
autoThread = new Thread(begin); //将运行操作传给TheTraffic建立线程
autoThread.start(); //线程开始工作
auto.setText("pause");
//auto.setToolTipText("按键中止交通灯工作");
//button_Activate.setIcon(null);//去掉按钮图像
}
//************************endif**************************
//***********************elseif***************************
else if (auto.getText() == "pause"){//显示线程已经开始,再次按下暂停
autoThread.suspend();//暂停
//button_Activate.setIcon(buttonIcons[0]) ;//恢复按钮图像
//button_Activate.setText("Activate");//恢复按钮文字
}
//***********************endelseif************************
//************************else*****************************
else{ //线程暂停中,再次按下继续运行
autoThread.resume();//继续
auto.setText("pause");//下一次操作为暂停按钮
//button_Activate.setToolTipText("按键中止交通灯工作");
//button_Activate.setIcon(null);//去掉按钮图标
}
//***********************endelse**************************
}
void stop_actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("pause")) {
now="pause";
stop.setText("continue");
}
if (e.getActionCommand().equals("continue")) {
now="continue";
stop.setText("continue");//中断
// autoThread.interrupt();
}
}
/* public void run() {
//从最开始演示
for (int i = 0; i < table.number; i++) {
try {
Thread.sleep(fps);
}
catch (InterruptedException ex1) {
while(now.equals("pause")) {
try {
wait();
}
catch (InterruptedException ex) {
//autoThread.notifyAll();
return;
}
}
while(now.equals("continue"))
try {
notifyAll();
}
catch (Exception ex2) {
}
}
while(now.equals("pause")){
try {
autoThread.wait();
}
catch (InterruptedException ex) {
autoThread.notifyAll();
}
drawTable.setCurrent(i);
drawTable.repaint(); //重画
}
//从最遍历到的那个节点开始演示
while(index<table.number){
drawTable.setCurrent(++index);
drawTable.repaint();
try {
Thread.sleep(fps);
}
catch (InterruptedException ex) {
}
if(index==table.number)
index=-1;
}
}
}*/
}
class Frame1_jMenuFileExit_ActionAdapter
implements ActionListener {
Frame1 adaptee;
Frame1_jMenuFileExit_ActionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuFileExit_actionPerformed(e);
}
}
class Frame1_jMenuHelpAbout_ActionAdapter
implements ActionListener {
Frame1 adaptee;
Frame1_jMenuHelpAbout_ActionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuHelpAbout_actionPerformed(e);
}
}
class Frame1_jRadioButtonTree_actionAdapter
implements java.awt.event.ActionListener {
Frame1 adaptee;
Frame1_jRadioButtonTree_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jRadioButtonTree_actionPerformed(e);
}
}
class Frame1_jRadioButtonBT_actionAdapter
implements java.awt.event.ActionListener {
Frame1 adaptee;
Frame1_jRadioButtonBT_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jRadioButtonBT_actionPerformed(e);
}
}
class Frame1_text_actionAdapter
implements java.awt.event.ActionListener {
Frame1 adaptee;
Frame1_text_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.text_actionPerformed(e);
}
}
class Frame1_binaryTreePreOrder_actionAdapter
implements java.awt.event.ActionListener {
Frame1 adaptee;
Frame1_binaryTreePreOrder_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.binaryTreePreOrder_actionPerformed(e);
}
}
class Frame1_binaryTreeInOrder_actionAdapter
implements java.awt.event.ActionListener {
Frame1 adaptee;
Frame1_binaryTreeInOrder_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.binaryTreeInOrder_actionPerformed(e);
}
}
class Frame1_binaryTreePostOrder_actionAdapter
implements java.awt.event.ActionListener {
Frame1 adaptee;
Frame1_binaryTreePostOrder_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.binaryTreePostOrder_actionPerformed(e);
}
}
class Frame1_treePreOrder_actionAdapter
implements java.awt.event.ActionListener {
Frame1 adaptee;
Frame1_treePreOrder_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.treePreOrder_actionPerformed(e);
}
}
class Frame1_treePostOrder_actionAdapter
implements java.awt.event.ActionListener {
Frame1 adaptee;
Frame1_treePostOrder_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.treePostOrder_actionPerformed(e);
}
}
class Frame1_reset_actionAdapter
implements java.awt.event.ActionListener {
Frame1 adaptee;
Frame1_reset_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.reset_actionPerformed(e);
}
}
class Frame1_auto_actionAdapter
implements java.awt.event.ActionListener {
Frame1 adaptee;
Frame1_auto_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.auto_actionPerformed(e);
}
}
class Frame1_stop_actionAdapter
implements java.awt.event.ActionListener {
Frame1 adaptee;
Frame1_stop_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.stop_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -