从ArrayList追加多次会导致同时打印多个值吗



我遇到了一个不确定如何解决的问题。我正在开发一个字符创建者,它可以写入.txt文件,也可以从同一个.txt文件中读取。第一次尝试时,我可以将.txt文件中的每一行都附加到JTextArea中,但当我返回到主菜单,然后返回到视图选项卡时,它会显示前两个值,而不仅仅是第一个值。每次返回都会增加另一个值。有关于如何修复的想法吗?如果这真是个愚蠢的问题,我深表歉意。

viewInfo.addActionListener (new ActionListener ()
{
public void actionPerformed (ActionEvent e) 
{
i3 = i3 + 1;    
try { BufferedReader br = new BufferedReader(new FileReader("charCreator.txt"));
while ((name1 [i3] = br.readLine()) != null) {
if (!list.contains(name1 [i3])){  
list.add (name1 [i3]);
}
}
br.close ();                  
} catch (IOException e1) {
e1.printStackTrace();
}
String infoArray [] = list.toArray (new String [500]);
viewArea.append (infoArray [i3]);
viewArea.append ("n");
} 
}
);

我对自己的编码技能并不完全有信心,但建设性的批评总是值得赞赏的。大多数变量都是全局的。

您可能需要确保在输入方法时不会保留列表。类似于:

list.clear()

另一种方法是将列表声明移动到方法中,这样您就知道它是新的。这个方法结束后,你似乎不需要它了。

最新更新