java - 清除JTextArea,设置新文本

标签 java arraylist jtextarea

所以我有我正在编写的软件片段。

目前,此代码片段输出我的 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/

相关文章:

java - JTextArea(换行)作为 TableCellRenderer 到多列

java - JTextArea 未附加到 swing GUI 中

Java:如何获取UTC时间戳 '1000-01-01 00:00:00'?

java - 如何通过跳过文件中的第一行和最后一行来读取文本文件

java - Vector 与 ArrayList 哪个更好?

powershell - 为什么使用 ArrayList 会打印数字?

Java 字符串转枚举

java - 将 JPanel 传递给绘制矩形的方法

java - 如何用数组列表填充 HashMap ?

java - 文本超出 JTextArea