【发布时间】:2015-03-07 03:05:55
【问题描述】:
我有一个带有 JTextField 的 GUI,它应该代表一个进度条。最初我将它设置为“0%”,它位于水平位置,有足够的文本空间。然而,当程序运行时,JTextField 拒绝更改,即使在我使用 progress.setText() 之后也是如此。奇怪的是,当我使用 progress.getText() 时,它会打印出它应该打印的内容。我试过环顾不同的区域,但大多数人只是说使用我尝试过的 .revalidate() 或 .repaint ,但都不起作用。相关代码在这里:
if(box3.isSelected()){
progress.setText("0%");
int i = 0;
FragChecker fc = new FragChecker();
String[] temp = new String[0];
LexicalizedParser lp = fc.LPReciever(temp);
while(i < tn.sentenceSizeGetter()){
tn.fragChecker((double)i, temp, lp);
setProgress(tn.fragPercentDone((double)i));
i++;
}
}
tn 引用我的 Tokenizer 类,tn.sentencesSizeGetter 返回数组列表的大小。 tn.fragPercentDone 返回已处理的句子除以总句子数,乘以 100。相关代码的下一位是 setProgress:
public void setProgress(String x){
System.out.println(x);
progress.setText(x + "%");
System.out.println(progress.getText());
}
【问题讨论】:
-
为什么要在while循环中设置文本?
-
通过 Swing 工作线程将更新提交到文本字段。
标签: java user-interface jtextfield settext