📄 frame1.java~313~
字号:
l2=new JLabel(" 请输入一个三元组形式表示的二叉树!");
l1.setFont(new Font("Dialog", 0, 15));
l2.setFont(new Font("Dialog", 0, 15));
l1.setBounds(100,10,180,20);
l2.setBounds(40,100,180,40);
jDialog.getContentPane().add(l1);
jDialog.getContentPane().add(l2);
jDialog.show();
return;
}
table.getPaintTableWH(drawTable.getWidth(),drawTable.getHeight());//获得画板的宽度和高度
table.creatBinaryTreeTable(s);// 建表
drawTable.setTable(table); //drawPanel中的表成员的赋值
drawTable.initDrawLabelPanel();
drawTable.repaint(); //重画
drawTable.validate();
}
if (jRadioButtonTree.isSelected() == true) { //树
String s = text.getText();
tree.creatTree(s); //建造树
if(tree.creatSuccess==false) {//输入出错则弹出一个提示框
jDialog=new JDialog(this,"!!!",true);
//jDialog.setSize(200,70);
jDialog.setBounds(450,300,300,120);
l1=new JLabel("输入错误!");
l2=new JLabel(" 请输入一个二元组形式表示的树!");
l1.setFont(new Font("Dialog", 0, 15));
l2.setFont(new Font("Dialog", 0, 15));
l1.setBounds(100,10,180,20);
l2.setBounds(40,100,180,40);
jDialog.getContentPane().add(l1);
jDialog.getContentPane().add(l2);
jDialog.show();
return;
}
table.getPaintTableWH(drawTable.getWidth(),drawTable.getHeight());//获得画板的宽度和高度
table.creatTreeTable(s);// 建表
drawTable.setTable(table); //drawPanel中的表成员的赋值
drawTable.initDrawLabelPanel();
drawTable.repaint(); //重画
}
}
void binaryTreePreOrder_actionPerformed(ActionEvent e) {
if (table.isEmpty() == true) {
return;
}
//使其他功能按钮不能使用
text.setEnabled(false);
binaryTreePreOrder.setEnabled(true);
binaryTreeInOrder.setEnabled(false);
binaryTreePostOrder.setEnabled(false);
treePreOrder.setEnabled(false);
treePostOrder.setEnabled(false);
binaryTreePreOrder.setText("下一步");
//binaryTree.preOrder();
table.changePathQueue( binaryTree.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();
//drawTable.unFillPreCurrent(0);
binaryTreePreOrder.setText("先序遍历");
binaryTreeInOrder.setText("中序遍历");
binaryTreePostOrder.setText("后序遍历");
binaryTreeInOrder.setEnabled(true);
binaryTreePostOrder.setEnabled(true);
}
}
void binaryTreeInOrder_actionPerformed(ActionEvent e) {
if (table.isEmpty() == true) {
return;
}
//使其他功能按钮不能使用
text.setEnabled(false);
binaryTreePreOrder.setEnabled(false);
binaryTreeInOrder.setEnabled(true);
binaryTreePostOrder.setEnabled(false);
treePreOrder.setEnabled(false);
treePostOrder.setEnabled(false);
binaryTreeInOrder.setText("下一步");
//binaryTree.inOrder(); //中序遍历
table.changePathQueue(binaryTree.inOrder());
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();
//drawTable.unFillPreCurrent(0);
binaryTreePreOrder.setText("先序遍历");
binaryTreeInOrder.setText("中序遍历");
binaryTreePostOrder.setText("后序遍历");
binaryTreePreOrder.setEnabled(true);
binaryTreePostOrder.setEnabled(true);
}
}
void binaryTreePostOrder_actionPerformed(ActionEvent e) {
if (table.isEmpty() == true) {
return;
}
//使其他功能按钮不能使用
text.setEnabled(false);
binaryTreePreOrder.setEnabled(false);
binaryTreeInOrder.setEnabled(false);
binaryTreePostOrder.setEnabled(true);
treePreOrder.setEnabled(false);
treePostOrder.setEnabled(false);
binaryTreePostOrder.setText("下一步");
//binaryTree.postOrder();
table.changePathQueue(binaryTree.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();
//drawTable.unFillPreCurrent(0);
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();
//drawTable.unFillPreCurrent(0);
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.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();
//drawTable.unFillPreCurrent(0);
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.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("后根遍历");
/*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(e.getActionCommand().equals("start")){
//now="auto";
// auto.setText("pause");
if(index==-1){return;}
if (auto.getText().equals("auto")) {
now = "auto";
auto.setText("pause");
travel = true;
autoThread = new Thread(this);
autoThread.start();
}
// }
else if (auto.getText().equals("pause")) {
now = "pause";
auto.setText("continue");
// autoThread.interrupt();
//auto
}
else if (auto.getText().equals("continue")) {
now = "continue";
auto.setText("pause");
//autoThread.interrupt();
}
}
void stop_actionPerformed(ActionEvent e) {
//if(auto.getText().equals("auto")) return;
now = "stop";
travel = false;
index = -1;
auto.setText("auto");
autoThread.interrupt();
/*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) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -