【发布时间】:2013-11-25 01:59:17
【问题描述】:
我正在开发一个在 jTable 中打印 100 个数字的程序。此外,还会有一个 if 语句来验证结果,并将根据打印的值将 jPanel 设置为特定颜色。我需要稍微慢一点打印这些值,并确保 jPanel 根据每个值更改它的颜色。我尝试了以下代码,但似乎有错误:
try{
int n = 100;
int m = 1513;
int a = 19713;
double x = 177963;
int c = 1397;
double r;
int i;
Object[] res = new Object[n];
for(i=0;i< n;i++){
r = (a*x+c)%m;
x = r;
r = r/m;
res[i] = r;
Thread.sleep(1000);
if(r>=0.3){
jPanel3.setBackground(Color.green);
}else{
jPanel3.setBackground(Color.red);
}
}
DefaultTableModel dtm = new DefaultTableModel();
dtm.addColumn("Results", res);
// dtm.addColumn("resultado2", res);
jTable1.setModel(dtm);
}catch(Exception e){
Thread.currentThread().interrupt();
}
【问题讨论】:
-
不要使用
sleep。用户摇摆Timer -
你太懒了,不仅没有从上一个问题中学到任何东西,而且它已被关闭,你似乎已经逐字转发了它,包括标题中的“(搁置)” ?!
标签: java swing concurrency event-dispatch-thread