У меня есть JFrame, в котором есть несколько JLabels, и когда я щелкаю любой JLabel, он открывает другой JFrame, но я хочу, чтобы другой был отключен. Сначала я сделал:
JFrame frame2 = new JFrame();
frame2.setVisible(true);
this.setEnabled(false);
Затем я хочу setEnabled(true)
1-й кадр, когда я закрываю 2-й кадр. Я дал 2-му кадру атрибут JFrame и параметр JFrame в своем конструкторе, а в WindowListener я использую метод windowClosing()
, например:
public class My2ndJFrame extends JFrame implements ActionListener, WindowListener {
My1stJFrame frame;
public My2ndJFrame(My1stJFrame frame) {
this.frame = frame;
//moreCodeWeDontNeedNow
}
@Override
public void windowClosing(WindowEvent e) {
frame.setEnabled(true);
}
Это работает, но я не знаю, Это хорошая практика программирования, поэтому я хотел бы знать, есть ли лучший способ, и если это не хорошо, почему. Спасибо.