Я делаю простой будильник с Java Swing.Пользователь может ввести информацию о тревоге, и информация будет сохранена в текстовом файле в одну строку.Если пользователь добавляет новый сигнал тревоги, он должен показать все сигналы, которые сохранены в текстовом файле.Чтобы показать все сигналы тревоги, я использовал панель, на которой я могу показать одну информацию о сигналах тревоги, и я помещу несколько панелей в рамку.
Проблема здесь в том, что когда я делаю Alarm1, он хорошо показывает, что у меня Alarm1.Однако, когда я добавляю Alarm2, это должно показать, что у меня есть alarm1 и alarm2.Тем не менее, это показывает, что у меня есть Alarm1, Alarm1, Alarm2.Когда я добавляю Alarm3, он показывает как Alarm1, Alarm1, Alarm2, Alarm1, Alarm2, Alarm3.Похоже, старые панели все еще остаются.Я хочу избавиться от старых.
Я поместил код, где каждый раз, когда я добавляю сигнал тревоги, он обновляет.
public void updateGUI() {
pnList.removeAll();
ListIterator<AlarmPanel> litr = lstPanel.listIterator();
while (litr.hasNext()) {
AlarmPanel element = litr.next();
pnList.add(element);
}
revalidate();
repaint();
}
Вот некоторые другие коды на случай, еслиВы должны увидеть добавление части тревоги.Я сохранил информацию о тревоге построчно.А читатель построчно читает файл и разбивает строку на различные типы информации ... Информация хранится как
Alarm2 10 35 PM WedThuFriTueWedThu
this.btnAdd = new JButton("Add");
this.btnAdd.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
SetAlarmDiag = new SetAlarm(frame);
SetAlarmDiag.setVisible(true);
try {
BufferedReader reader = new BufferedReader(new FileReader("AlarmList.txt"));
String line = reader.readLine();
while (line != null) {
StringTokenizer tokenizer = new StringTokenizer(line);
String alarmName = tokenizer.nextToken();
String alarmHour = tokenizer.nextToken();
String alarmMinute = tokenizer.nextToken();
String alarmAMPM = tokenizer.nextToken();
String alarmRepeatDays = tokenizer.nextToken();
String firstInfo = alarmName + " " + alarmHour + " : " + alarmMinute + " " + alarmAMPM;
alarmTitle.add(firstInfo);
alarmTime.add(alarmRepeatDays);
System.out.println(alarmName + alarmHour + alarmMinute + alarmAMPM); // debugging
makePanel();
line = reader.readLine();
}
reader.close();
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});