[英]Stop a variable from printing out multiple times
我有一个GUI,它可以打印出某些东西的总成本,但是在GUI顶部的总和却一直在重新打印结果,而不仅仅是更改数字(或双精度值)。
这是代码(我正在谈论的部分是“ output.insert”):
output.insert("total to pay: " + priceToPay+ "\n", 0);
在我看来,这行代码向组件添加了新文本。
相反,我猜你应该使用类似的东西:
output.setText("total to pay: " + priceToPay+ "\n", 0);
当您使用output.insert(something,0)
,就像在开头追加一样。 这意味着它将在偏移量0处添加文本,并将所有现有文本推入其后。
如果要替换该行而不是在其前面插入新行,则应使用replaceRange
而不是insert
。 至少从第二次开始。
因此,假设您添加了一个字段来检查它是否是第一次:
private static boolean firstTimeShowingTotal = true;
然后,您可以将事件处理程序中的output.insert
行更改为:
String totalToShow = "total to pay: " + priceToPay+ "\n";
if ( firstTimeShowingTotal ) {
output.insert(totalToShow, 0);
firstTimeShowingTotal = false;
} else {
int endOfFirstLine = output.getLineEndOffset(0);
output.replaceRange(totalToShow, 0, endOfFirstLine);
}
getLineEndOffset
将找到文本中第一行结尾的偏移量。 replaceRange
调用将使用replaceRange
将文本从0替换为该偏移量。
不相关的说明:检查您的静态字段。 如果所有字段都是静态的,则创建类的实例不是一个好主意。 我相信这些字段中的大多数应该是实例字段,而不是静态字段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.