Как установить для видимости JFrame значение False после нажатия кнопки IntelliJ? - PullRequest
0 голосов
/ 07 мая 2020

UI2 - это JFrame, который я смоделировал с помощью IntelliJ Swing UI Designer -> GUI form. Я добавил кнопку в этот фрейм, при нажатии на которую открывается другой фрейм. Я хочу установить для текущего кадра значение false после нажатия кнопки и до открытия другого кадра. И я не могу получить доступ к текущему кадру в методе прослушивания действия кнопки. Какие-нибудь советы? Извините, если вопрос неясен.

 public class UI2 {
        JPanel rootPanel;
        JPanel northPanel;
        JPanel westPanel;
        JPanel southPanel;
        JButton button1;
        JLabel header;
        JTextField textField1;



   public UI2() {
        button1.addActionListener(new ActionListener()  {
            @Override
            public void actionPerformed(ActionEvent e) {

                JFrame frame2 = new JFrame();
                frame2.setContentPane(new next_f().Panel1);
                frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame2.pack();
                frame2.setVisible(true);

            }
        });
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("UI");
        frame.setContentPane(new UI2().rootPanel);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }}

1 Ответ

1 голос
/ 07 мая 2020

Одно из решений - просто добавить поле в свой класс.

public class UI2 {
    JPanel rootPanel;
    JPanel northPanel;
    JPanel westPanel;
    JPanel southPanel;
    JButton button1;
    JLabel header;
    JTextField textField1;
    JFrame showingFrame;
    ...
    }

Затем в вашем основном методе. Измените панель заданного содержимого на.

public static void main(String[] args) {
    JFrame frame = new JFrame("UI");
    UI2 ui2 = new UI2();
    ui2.showingFrame = frame;
    frame.setContentPane(ui2.rootPanel);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);
}

Теперь все в UI2 может получить доступ к ShowFrame.

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