Java ActionListener не работает после вызова метода - PullRequest
0 голосов
/ 10 апреля 2020

Я работаю над проектом, и после вызова метода добавленный ActionListener больше не работает. Я разработал проект, используя MVC -Pattern.

View Class:

public class Client_View {
public Client_View() {

{...} // Creating Login Window

        frame = new JFrame();
        frame.setTitle("Client");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(800, 600);
        frame.add(login);
        login.setVisible(true);
        frame.setVisible(true);
    }

public void loadMain(JFrame frame) {
        JPanel main =new JPanel();
        ...//implementing Buttons an Labels
        edit = new JButton("edit");
        frame.add(main);
        main.setVisible(true);
        frame.setVisible(true);
        frame.repaint();
    }

public void loadEdit(JFrame frame){
       JPanel edit = new JPanel(); 
       //Load Buttons and Labels
       save = new JButton("save");
       edit.add(save);
       frame.add(edit)
       edit.setVisible(true);   
}

public JButton getSave() {
        return save;
    }

public JButton getEdit() {
        return edit;
    }

public JFrame getFrame() {
        return frame;
    }

public void setDeleteMain(JFrame frame) {
        this.frame.remove(main);
        this.frame.repaint();
    }

    public void setDeleteEdit(JFrame frame) {
        this.frame.remove(edit_panel);
        this.frame.repaint();
    }

Контроллер класса:

...
public void main() {
        view.setDeleteLogin(cc_view.getFrame());
        view.loadMain(cc_view.getFrame());
        view.getEdit().addActionListener(e-> edit()); // <-This is the part that doesn't work   }

public void edit(){

        view.setDeleteMain(view.getFrame());
        view.loadEdit(view.getFrame());
        view.getSave().addActionListener(e -> main());
}
...

Теперь, когда я редактирую проект, он загружает окно редактирования. Затем после нажатия «сохранить» он снова загружает главное окно. Однако теперь, если я снова нажму edit, окно редактирования не откроется. Это не go в ActionListener для кнопки редактирования. Я попытался удалить и добавить Action Listener снова после нажатия кнопки. не имели. работать так же. Кто-нибудь знает решение ActionListeners и почему они не работают после вызова метода?

Спасибо

...