我想使用netbeans开发模拟器。所以我选择插入sort.i我需要在运行代码时更改jlabel背景颜色。这意味着我想在运行代码时逐行着色。对于这种情况,我使用下面的代码段。有更多的代码。但我只提到相关部分。我是否改变了jlabel颜色!
for(j = 1; j <7; j ++){ 睡眠();
key = numArray[j];
jLabel11Algo2.setBackground(Color.red);
sleep();
jLabel11Algo2.setBackground(Color.white);
System.out.println(key);
答案 0 :(得分:1)
首先,您需要使标签不透明,以便绘制背景:
label.setOpaque(true);
其次要做动画,你需要用Swing Timer来做动画,而不是Thread.sleep()。
您不能使用Thread.sleep(),因为这会导致事件调度线程进入休眠状态,这意味着GUI无法重新绘制自身。有关详细信息,请阅读Concurrency上的Swing教程中的部分。