Соответствующая часть в размещенном вами коде находится в вашем ActionListener
, где вы обрабатываете нажатие кнопки. Прежде всего, вы можете сохранить запрошенную вами модель ArrayList
в виде списка списков строк (List >) - или типов, определенных в структуре формы @ willcodejavaforfood. Таким образом, вы легко сможете сохранить предыдущие строки. Каждый раз, когда нажимается кнопка, вы можете получить данные из текстовых полей, как вы уже закодировали, и теперь просто добавить их в модель в виде новой строки. Затем вы можете перебрать модель и заменить данные в JTextArea.
Объявление вашей модели будет выглядеть так:
List<List<String>> model = new ArrayList<List<String>>();
и ваш обновленный слушатель действия будет выглядеть примерно так:
addB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
id.selectAll();
fname.selectAll();
lname.selectAll();
course.selectAll();
year.selectAll();
String textID = id.getSelectedText();
String textFName = fname.getSelectedText();
String textLName = lname.getSelectedText();
String textCourse = course.getSelectedText();
String textYear = year.getSelectedText();
List<String> line = Arrays.asList(new String[]{textID,textFName,textLName,textCourse,textYear});
model.add(line);
StringBuilder sb = new StringBuilder();
sb.append("ID\tFirst\tLast\tCourse\tYear\n");
for(List<String> input : model) {
for (String item : input) {
sb.append(item);
if (input.indexOf(item) == input.size()-1) {
sb.append("\n");
} else {
sb.append("\t");
}
}
}
summary.setText(sb.toString());
}
});
Это немного грубой силы, но она выполняет свою работу. Можно сделать еще больше, чтобы обеспечить правильное выравнивание столбцов и сделать более красивым способ обеспечения новой строки в конце строки и т. Д., Но это, как говорится, оставлено в качестве упражнения для читателя.