📄 draw_tree.java
字号:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import myBag.*;
class Draw_TreeFrame extends JFrame{
int width=650,height=500;
public Draw_TreeFrame(){
setTitle("Draw_Tree");
Container contentPane=getContentPane();
contentPane.add(new Draw_TreePanel());
addWindowListener(new WL()); //添加窗口事件监听器
setSize(width,height);
}
class WL extends WindowAdapter{ //设置窗口事件监听器
public void windowClosing(WindowEvent e){ System.exit(0);}
}
class Draw_TreePanel extends JPanel{
public void paintComponent(Graphics g){
super.paintComponent(g);
int e[]={37, 24, 42, 7, 32, 40, 42, 2, 0, 0, 0, 0, 0, 0,120};
myVal array[]=new myVal[15];
for(int i=0;i<15;i++) array[i].setIT(new IElem(e[i]));
draw_Tree(g, array);
}
private void draw_Tree(Graphics g,myVal[] array){
Code code[]=new Code[15];
code[0]=new Code(300,50);
code[1]=new Code(150,100); code[2]=new Code(450,100);
code[3]=new Code(75,150); code[4]=new Code(225,150);
code[5]=new Code(375,150); code[6]=new Code(525,150);
code[7]=new Code(38,200); code[8]=new Code(112,200);
code[9]=new Code(188,200); code[10]=new Code(262,200);
code[11]=new Code(338,200); code[12]=new Code(412,200);
code[13]=new Code(488,200); code[14]=new Code(562,200);
for(int k=0; k<15; k++){
if(array[k].getIT().key()==0) k++; //a中元素关键码为0,不画图
else{
g.setColor(Color.black);
g.drawOval(code[k].getX(),code[k].getY(),20,20); //画圆
g.setColor(new Color((int)(Math.random()*255),(int)(Math.random()*255),(int)(Math.random()*255)));
g.fillOval(code[k].getX(),code[k].getY(),20,20); //填充圆
g.setColor(Color.black);
g.drawString(String.valueOf(array[k].getIT().key()),code[k].getX(),code[k].getY()+13); //标注元素关键码值
}
}
for(int j=0; j<=6; j++){
if(array[2*j+1].getIT().key()!=0){ //有左子
g.setColor(Color.black);
g.drawLine(code[j].getX()+6,code[j].getY()+20,code[2*j+1].getX()+6,code[2*j+1].getY());
}
if(array[2*j+2].getIT().key()!=0){ //有右子
g.setColor(Color.black);
g.drawLine(code[j].getX()+6,code[j].getY()+20,code[2*j+2].getX()+6,code[2*j+2].getY());
}
}
}
}
}
public class Draw_Tree{
public static void main(String[]array){
Draw_TreeFrame f=new Draw_TreeFrame();
f.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -