Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JTextArea未重置值_Java_User Interface - Fatal编程技术网

Java JTextArea未重置值

Java JTextArea未重置值,java,user-interface,Java,User Interface,我不确定这到底是JTextArea问题还是ActionListener问题还是其他问题 我的程序所做的是从给定的URL获取详细信息,并在按下按钮时将其显示在JTextArea中。以下是我遇到问题的代码: public void displayResults(String url, JTextArea area) { //number of episode int num = 1; //Get the URL from JTextField that will be p

我不确定这到底是JTextArea问题还是ActionListener问题还是其他问题

我的程序所做的是从给定的URL获取详细信息,并在按下按钮时将其显示在JTextArea中。以下是我遇到问题的代码:

public void displayResults(String url, JTextArea area) {

    //number of episode
    int num = 1;

    //Get the URL from JTextField that will be passed as a parameter of this method
    webData.setup(url);

    String result = "";

    for (int i = 0; i < webData.getDates().size(); i++) {
        result += "Episode " + num++ + ": " + webData.getEpisodeTitle().get(i) + "\n" + "Air date: "
                + webData.getDates().get(i) + "\n\n";
    }
    //Set the text of JTextArea with the values produced in loop above
    area.setText(result);
}
问题是,每次提供一个新的URL时,它也会显示上一个URL的结果。例如,如果我运行程序并给它URL#1,它将显示20个结果(假设它有20个结果),当提供下一个URL时,它仍将显示URL#1中的前20个结果,然后从21中显示URL#2的结果。像这样:

Episode 22: Not aired yet!
Air date: 18 May 2018

Episode 23: The Flash Reborn
Air date: 10 Oct. 2017
^这是两个不同URL的结果。我希望URL#2结果从num=1开始,而不是在URL#1停止的地方递增。是否有办法在每次按下按钮时重置JTextArea值?我真的是新手,所以任何帮助都将不胜感激

编辑:下面是webData.setup()的方法


问题就在这里

for(Element results : dateData) {
    dates.add(results.text());
}
您正在将新的
元素
实例添加到
日期
中,但从未删除它们。 加上

webData.setup(url)之前

所以

public void displayResults(字符串url,JTextArea){
//集数
int num=1;
日期。清除();
//从JTextField获取URL,该URL将作为此方法的参数传递
webData.setup(url);
字符串结果=”;
对于(int i=0;i
问题可能出在
webData.setup(url)中方法。你能发布它的来源吗?你好。我已经在编辑过的主要帖子中添加了这个方法,因为我在这里发布的字符已经用完了。但这不是问题所在。在它自己的类中使用main方法之前,我已经测试过它,它没有产生任何重复。问题只在我从GUI运行多个URL时出现。@CharmingPotato如果有效,你应该投票并接受我的答案:)谢谢,很高兴我帮助了Edi,但它不会让我投票,因为我没有15个声誉:(
public void setup(String url) {

    try {
        site = Jsoup.connect(url).get();
    } catch (IOException e) {
        e.printStackTrace();
    }
    dateData = site.select("div.airdate");
    titleData = site.select("a[itemprop='name']");
    showTitle = site.select("a.subnav_heading").first();

    for(Element results : dateData) {
        dates.add(results.text());
    }

    for(Element results : titleData) {
        if(results.text().contains("Episode #")) {
            episodeTitles.add("Not aired yet!");
        } else {
            episodeTitles.add(results.text());
        }
    }

}
for(Element results : dateData) {
    dates.add(results.text());
}
dates.clear();
public void displayResults(String url, JTextArea area) {

    //number of episode
    int num = 1;
    dates.clear();

    //Get the URL from JTextField that will be passed as a parameter of this method
    webData.setup(url);

    String result = "";

    for (int i = 0; i < webData.getDates().size(); i++) {
        result += "Episode " + num++ + ": " + webData.getEpisodeTitle().get(i) + "\n" + "Air date: "
                + webData.getDates().get(i) + "\n\n";
    }
    //Set the text of JTextArea with the values produced in loop above
    area.setText(result);
}