繁体   English   中英

阻止变量多次打印

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM