У меня проблемы с отображением нескольких панелей в рамке - PullRequest
0 голосов
/ 16 июня 2019

Я делаю простой будильник с 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();
                }


        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...