如何使用`JTextArea`实例字段更改`JTextArea`内容?

问题描述 投票:1回答:1

我有一个对象ReminderGUI,它有一个JTextArea字段。 ReminderGUI代表一个应用程序,它可以保存和显示提醒。当点击getReminderButton时,我希望应用程序找到之前为此日期保存的提醒,并将其显示在JTextArea中(我没有在代码片段中显示此功能)。

我在更改JTextArea文本时遇到问题,下面的代码演示了它。一旦getReminderButton被点击,那么getReminderButtonHandler()应该初始化一个新的空白JTextArea,然后将其附加到some new text here。为什么这不起作用?

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class ReminderGUI extends JFrame implements ActionListener{

    private JButton getReminderButton;
    private JTextArea reminderTextArea;

    public ReminderGUI() {
        super();
        super.setLayout(new BorderLayout());
        this.reminderTextArea = new JTextArea("Enter text");
        this.getReminderButton = new JButton("Get reminder");

        JPanel southPanel = new JPanel();

        southPanel.add(getReminderButton, BorderLayout.SOUTH);

        super.add(southPanel, BorderLayout.SOUTH);
        super.add(reminderTextArea, BorderLayout.CENTER);

        this.getReminderButton.addActionListener(this);
    }

    public void actionPerformed(ActionEvent e) {
        if(e.getSource() == this.getReminderButton) {
            this.getReminderButtonHandler();
        }
    }

    private void getReminderButtonHandler() {
        this.reminderTextArea = new JTextArea("");
        this.reminderTextArea.append("some new text here");
    }

    public static void main(String[] args) {
        ReminderGUI rmg = new ReminderGUI();
        rmg.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        rmg.setSize(500, 300);
        rmg.setVisible(true);
    }
}
java swing jtextarea
1个回答
1
投票

问题出在这一行:this.reminderTextArea = new JTextArea("Enter text");你正在创建一个新的TextArea

您可以使用set方法设置它,如下所示:reminderTextArea.setText(text);

© www.soinside.com 2019 - 2024. All rights reserved.