📄 frame1.java~291~
字号:
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation( (frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.setModal(true);
dlg.pack();
dlg.show();
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
jMenuFileExit_actionPerformed(null);
}
}
void jRadioButtonBT_actionPerformed(ActionEvent e) {
binaryTreePreOrder.setEnabled(true);
binaryTreeInOrder.setEnabled(true);
binaryTreePostOrder.setEnabled(true);
treePreOrder.setEnabled(false);
treePostOrder.setEnabled(false);
//flag = new String("BinaryTree");
}
void jRadioButtonTree_actionPerformed(ActionEvent e) {
binaryTreePreOrder.setEnabled(false);
binaryTreeInOrder.setEnabled(false);
binaryTreePostOrder.setEnabled(false);
treePreOrder.setEnabled(true);
treePostOrder.setEnabled(true);
//flag = new String("Tree");
}
void text_actionPerformed(ActionEvent e) {
table=new Table();//清空table上的记录
tree=new Tree();
binaryTree=new BinaryTree();
drawTable.removeAll();
drawTable.repaint();
JDialog jDialog;
JLabel l1,l2;
if (jRadioButtonBT.isSelected() == true) { //二叉树
String s = text.getText();
binaryTree.creatBinaryTree(s); //建造树
if(binaryTree.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.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();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -