Я работаю над проектом, и после вызова метода добавленный 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 и почему они не работают после вызова метода?
Спасибо