Использование одной кнопки для извлечения информации из нескольких панелей - PullRequest
2 голосов
/ 17 февраля 2020

Я создаю эту форму, чтобы иметь возможность изменять отображаемые поля в зависимости от выбранных вами настроек.

Будет 3 панели: первая с текстовыми полями для сбора информации, вторая для заметок, третья для контрольного списка. Основной фрейм добавит эти панели на него и использует одну кнопку, чтобы собрать информацию с каждой панели и скомпилировать ее в текстовую область, чтобы вы могли просто скопировать / вставить ее после форматирования.

Итак, у меня проблема с передачей информации в основной фрейм. Я создал Formlistener для передачи информации из формы, используя созданный мной объект FormEvent, который будет переносить необходимую информацию. Затем я создал метод в форме, чтобы получить соответствующую информацию в зависимости от того, какая форма используется в данный момент. Моя проблема в том, чтобы заставить этот метод вызываться правильно. Это ActionListener для кнопки:

confirm.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
    form.getUbntInfo(); // this is where i have it set
    form.setFormListener(new FormListener() {
          // would like it to go here so that it creates the event 
          // object to pass before               
          // it passes the information, but it causes compile error here
        public void formEventOccured(FormEvent e) {
            String complaint = e.getComplaint();
            String ping = e.getPing();
            String ap = e.getAp();
                signal0 = e.getSignal0();
                signal1 = e.getSignal1();
                chain0 = e.getChain0();
                chain1 = e.getChain1();
                sinr0 = e.getSinr0();
                sinr1 = e.getSinr1();
                sinr0 = e.getLan();
                System.out.println("local signal: " + signal0);
        }
    });

По существу, для метода getUbntInfo(); должен быть установлен formListener, чтобы он мог передавать создание объекта для передачи информации. Когда я стою, я могу нажать кнопку дважды, и она передает информацию во второй раз, но не будет делать это в первый раз. Что я делаю неправильно?

...