У меня есть 1 JFrame и 10 JPanel компонентов в качестве отдельных классов. На jframe также есть JMenuBar. Когда щелкнул пункт меню, я удаляю все содержимое contentPane из jframe (removeAll) и добавляю один из моих jpanels.
Вот мой код;
// this function changes panel
public static void SwitchPanel(Component comp)
{
Container panel = getContentPane();
panel.removeAll();
panel.add(comp);
panel.revalidate();
panel.repaint();
}
// this function defines menu items and their listeners
public JMenuItem AddMenuItem(JMenu menu, String name, final JPanel toPanel) {
JMenuItem menuItem = new JMenuItem(name);
menu.add(menuItem);
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
SwitchPanel(toPanel);
}
});
return menuItem;
}
и я добавляю такие пункты меню;
AddMenuItem(menu1, "some menu item", new MyPersonalJPanel());
Все работает. НО я хочу создать новую jpanel, когда щелкнул соответствующий пункт меню. Я имею в виду создать jpanel, если только это необходимо. Текущий код сначала создает все jpanels. Когда я щелкнул пункт меню, показывает мне jpanel, созданный ранее.
Я думаю, что это можно сделать с помощью метода Class.forName, но я не мог понять это. Любая помощь?