Как я могу изменить менеджер раскладки моего 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
переключаться между панелями.