Как я могу изменить менеджер раскладки моего JFrame после запуска?

Фон: я работаю над программой "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 ответ

Решение

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

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

Другие вопросы по тегам