所以我有我正在编写的软件片段。
目前,此代码片段输出我的 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("") ,但这让我根本无法显示任何文本,即使我尝试在使用数组列表设置文本之前/之后放置 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 - 清除JTextArea,设置新文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40038234/