Как я могу изменить менеджер раскладки моего JFrame после запуска? - PullRequest
0 голосов
/ 21 марта 2012

Фон: Я работаю над программой "GUI from Hell".

Проблема: Мне нужно изменить диспетчер компоновки моего JFrame с BorderLayout с установленным конструктором на FlowLayout.

Цель: После того, как нажата кнопка, очень много раз это произойдет очень быстро, а затем в одном или другом менеджере раскладки.

Как мне добиться этого лучше всего? Вот некоторый (рабочий) код, если он вообще помогает:

if (goodVibes)
        {
            final Timer t = new Timer(100, null);
            ActionListener changeStyle = new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    int count = 100;

                    // Insert layout manager switching code here

                    count--;
                    if (count <= 0)
                        t.stop();
                }
            };
        }

Заранее спасибо за любые указания!

1 Ответ

5 голосов
/ 21 марта 2012

Предположительно у вас будут все разные компоненты?Поэтому поместите компоненты в JPanel для каждого макета.Переключение с помощью frame.setContentPane(panel);.

В качестве альтернативы используйте java.awt.CardLayout для переключения между панелями.

...