我有其在所述GUI的頂部打印出來的東西,但總的總成本不斷重新打印結果,而不是僅僅改變的數量(或雙精度值)的GUI打印出一個可變。停止從多次
這裏是代碼(部分IM講的是「output.insert」):
我有其在所述GUI的頂部打印出來的東西,但總的總成本不斷重新打印結果,而不是僅僅改變的數量(或雙精度值)的GUI打印出一個可變。停止從多次
這裏是代碼(部分IM講的是「output.insert」):
output.insert("total to pay: " + priceToPay+ "\n", 0);
在我看來就像該行代碼被添加新的文本到組件。當您使用output.insert(something,0)
這就像在開始追加
output.setText("total to pay: " + priceToPay+ "\n", 0);
是不工作,因爲它只接受一個字符串,並不會允許我設置,我想它的頂線(0末)。這也消除了我的其他輸出 – codingmachine
:
相反,我猜你應該使用類似。這意味着它將在偏移量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
將用您的新消息替換從0到該偏移量的文本。
無關的注意:請檢查您的靜態字段。如果所有字段都是靜態的,那麼創建一個類的實例並不是一個好主意。我相信大多數這些領域應該是實例領域而不是靜態領域。
「輸出」在哪裏定義?它的類型是什麼?你爲什麼不用'addByNbr'做任何事情,以及addByNbrUnits定義在哪裏?誰在呼叫「號碼購買」以及在什麼情況下? – RealSkeptic
@RealSkeptic在那裏,我已經添加定義它的其他類文件等 – codingmachine