[英]Clearing JTextArea, set new text
因此,我有正在編寫的軟件片段。
當前,此代碼段輸出我在ArrayList(購物車)中擁有的所有項目。
JButton btnShowCart = new JButton("Show cart");
btnShowCart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
for (int i = 0; i < listWithItems.size(); i++) {
txtBasket.setText(txtBasket.getText() + listWithItems.get(i) + "\n" );
}
}
});
每當我單擊“顯示購物車”時,我就會看到列表中包含的內容。 完美,但是我希望它在JTextArea再次從ArrayList設置文本之前清除文本,否則我也看到舊文本。 有可能嗎? 我嘗試了repaint(),但是沒有成功。 我也嘗試過setText(“”),但這使我根本無法顯示任何文本,即使我嘗試在使用arraylist設置文本之前/之后放置setText(“”)。
您不應在循環中調用txtBasket.getText(),因為您每次都會獲得前一個文本。
嘗試這樣的事情:
JButton btnShowCart = new JButton("Show cart");
btnShowCart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String content = "";
for (int i = 0; i < listWithItems.size(); i++) {
content += listWithItems.get(i) + "\n" ;
}
txtBasket.setText(content);
}
});
如果這是JAVA / SWING,則可能需要像這樣調用SwingUtilities:
String text = "";
for (int i = 0; i < listWithItems.size(); i++) {
text += txtBasket.getText() + listWithItems.get(i) + "\n";
}
// update GUI
SwingUtilities.invokeLater(new Runnable() {
public void run() {
statusLabel.setText(text);
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.