📄 frame1.java~336~
字号:
drawTable.fillCurrent();
drawTable.unFillPreCurrent(index - 1);
drawTable.paintBottomNode();
drawTable.repaint();
}
if (index == table.number) { //重新开始
index = -1;
drawTable.cleanBottonCircle();
binaryTreeInOrder.setText("中序遍历");
binaryTreePreOrder.setText("先序遍历");
binaryTreePostOrder.setText("后序遍历");
binaryTreeInOrder.setEnabled(true);
binaryTreePreOrder.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("下一步");
table.changePathQueue(tree.preOrder());
drawTable.setTable(table);
if (index < table.number) {
drawTable.setCurrent(++index);
drawTable.fillCurrent();
drawTable.unFillPreCurrent(index - 1);
drawTable.paintBottomNode();
drawTable.repaint();
}
if (index == table.number) { //重新开始
index = -1;
drawTable.cleanBottonCircle();
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("下一步");
table.changePathQueue(tree.postOrder());
drawTable.setTable(table);
if (index < table.number) {
drawTable.setCurrent(++index);
drawTable.fillCurrent();
drawTable.unFillPreCurrent(index - 1);
drawTable.paintBottomNode();
drawTable.repaint();
}
if (index == table.number) { //重新开始
index = -1;
drawTable.cleanBottonCircle();
treePostOrder.setText("后根遍历");
treePreOrder.setEnabled(true);
}
}
/**重置*/
void reset_actionPerformed(ActionEvent e) {
table = new Table(); //表格数据,记录了节点的坐标等信息
tree = new Tree(); //树
binaryTree = new BinaryTree(); //二叉树
autoThread = null; //基本运行线程
index = -1;
//fps = 1000; //频率
/******************************************************
//drawTable=new DrawPanel();
切记,不要再新建一个对象了!!
******************************************************/
drawTable.removeAll();
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("后根遍历");
}
/**自动遍历*/
void auto_actionPerformed(ActionEvent e) {
// if(e.getActionCommand().equals("start")){
//now="auto";
// auto.setText("pause");
//if(index==-1){return;}
if (auto.getText().equals("auto")) {
now = "auto";
auto.setText("pause");
auto.setToolTipText("暂停");
travel = true;
autoThread = new Thread(this);
autoThread.start();
}
else if (auto.getText().equals("pause")) {
now = "pause";
auto.setText("continue");
auto.setToolTipText("继续");
// autoThread.interrupt();
//auto
}
else if (auto.getText().equals("continue")) {
now = "continue";
auto.setText("pause");
auto.setToolTipText("暂停");
//autoThread.interrupt();
}
}
void stop_actionPerformed(ActionEvent e) {
if (auto.getText().equals("auto")) {
return;
}
now = "stop";
travel = false;
index = -1;
auto.setText("auto");
autoThread.interrupt();
//Thead.stop()f方法不提倡使用了!!
/*try {
autoThread.stop();
}
catch (Exception ex) {
}
autoThread = null;*/
//按钮的还原
if (jRadioButtonTree.isSelected() == true) {
treePreOrder.setEnabled(true);
treePostOrder.setEnabled(true);
treePreOrder.setText("先根遍历");
treePostOrder.setText("后根遍历");
}
else if (jRadioButtonBT.isSelected() == true) {
binaryTreePreOrder.setEnabled(true);
binaryTreeInOrder.setEnabled(true);
binaryTreePostOrder.setEnabled(true);
binaryTreePreOrder.setText("先序遍历");
binaryTreeInOrder.setText("中序遍历");
binaryTreePostOrder.setText("后序遍历");
}
drawTable.cleanBottonCircle(); //画板的清除
drawTable.repaint();
}
/**实现Runnable接口的方法*/
public void run() {
while (index < table.number - 1) {
if (!now.equals("pause")) {
if (travel == true) {
drawTable.setCurrent(++index);
drawTable.fillCurrent();
drawTable.unFillPreCurrent(index - 1);
drawTable.paintBottomNode();
drawTable.repaint();
}
}
if (travel == true) { //now.equals("pause")
try {
Thread.sleep(2500 / fps);
}
catch (InterruptedException ex) {
//autoThread.notifyAll();
return;
}
}
if (index == table.number -1) { //重新开始 index==table.number则不循环
index = -1;
try {
Thread.sleep(2500 / fps);
}
catch (InterruptedException ex) {
//autoThread.notifyAll();
return;
}
drawTable.cleanBottonCircle(); //清除填充的颜色
}
}
}
/**打开文件监听*/
void jMenuOpen_actionPerformed(ActionEvent e) {
StringBuffer content = new StringBuffer();
JFileChooser jFileChooser = new JFileChooser("c:\\");
jFileChooser.addChoosableFileFilter(new TxtFileFilter("txt"));
jFileChooser.setDialogType(jFileChooser.OPEN_DIALOG);
int result = jFileChooser.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
File file = jFileChooser.getSelectedFile();
if (file.getName().endsWith(".txt")) {
try {
String s;
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
while ( (s = br.readLine()) != null) {
content.append(s);
}
br.close();
}
catch (IOException ex) {
System.out.println(ex);
}
}
}
if (result == JFileChooser.CANCEL_OPTION) {}
text.setText(content.toString());
}
/**保存文件监听*/
void jMenuSave_actionPerformed(ActionEvent e) {
JFileChooser jFileChooser = new JFileChooser("c:\\");
jFileChooser.addChoosableFileFilter(new TxtFileFilter("txt"));
jFileChooser.setDialogType(jFileChooser.SAVE_DIALOG);
int result = jFileChooser.showSaveDialog(this);
File file = null;
if (result == JFileChooser.APPROVE_OPTION) {
try {
file = jFileChooser.getSelectedFile();
FileWriter fw = new FileWriter(file);
fw.write(text.getText());
fw.close();
}
catch (IOException ex1) {
System.out.println(ex1);
}
}
}
}
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);
}
}
class Frame1_jMenuOpen_actionAdapter
implements java.awt.event.ActionListener {
Frame1 adaptee;
Frame1_jMenuOpen_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuOpen_actionPerformed(e);
}
}
class Frame1_jMenuSave_actionAdapter
implements java.awt.event.ActionListener {
Frame1 adaptee;
Frame1_jMenuSave_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuSave_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -