急,各位牛人请进,关于一个SWT GUI延时的问题。
用SWT Designer设计了一个二叉树的遍历示意器,用Text(文本输入框) 表示二叉树的节点,在中序、前序、后序遍历示希望 Text的颜色会有变化,用绿色代表遍历时走过的节点,红色表示遍历过程中访问的节点。但是遍历的速度太快了,根本看不出来颜色的变化,就一瞬间全都变红了,在网上查了一些资料了 试了一下 用
try {Thread.currentThread().sleep(1000);}
catch(InterruptedException e) {}
是不行的,它是起到了延时的作用,但是在延时的过程中整个窗口什么都不显示,一片空白,等到完成后一起显示,看不多遍历的过程。我就希望在那个遍历递归函数执行一条语句停2秒钟 在执行下一条,并能在窗口中看到遍历的过程。我的这个中序遍历函数是这样的
public void inorderTraversal(Node probe)
{
if (probe!=null)
probe.t.setBackground(probe.t.getDisplay().getSystemColor(SWT.COLOR_GREEN)); //经过的节点变绿色
inorderTraversal(probe.leftChild);
sum=sum+probe.getData()+" ";
probe.t.setBackground(probe.t.getDisplay().getSystemColor(SWT.COLOR_RED)); //表示经过的节点变红色
inorderTraversal(probe.rightChild);
}
是不用Timer什么的,还是多线程控制?那位好心人解答一下,谢谢!