У меня есть JMenuBar и JPanel. Я хотел бы добавить JMenuBar в JPanel. Как мне это сделать?добавить JMenuBar в JPanel?
ответ
Вы можете использовать BorderLayout для ваших JPanel и поставить JMenuBar в область СЕВЕРО панели с
JPanel p = new JPanel();
p.setLayout(new BorderLayout());
p.add(menubar, BorderLayout.NORTH);
JMenuBar является JComponent и может быть добавлен в контейнер, как и любой другой JComponent.
JMenuBars установлены в JFrame с использованием метода setJMenuBar.
См. Следующий учебник о том, как их использовать.
http://download.oracle.com/javase/tutorial/uiswing/components/menu.html
Невозможно добавить их прямо в JPanel? У меня есть другие предметы там ... если я добавлю JFrame, не нарисуйте мои элементы панели? – Skizit
Ну, JMenuBar - это еще один JComponent, поэтому вы можете добавить его в свой JPanel так же, как и вы. Однако, поскольку он предназначен для подключения к JFrame, он может работать некорректно (или даже вообще!) – Codemwnci
Я тоже пробовал, но JMenuItem
с Jmenu
и JmenuBar
не был добавлен в JPanel
. Но вы можете почувствовать это, если объявите макет JFrame
равным нулю, затем используйте setBounds(x, y, width, height)
на экземпляре JMenuBar
, затем добавьте строку меню в JFrame
.
-1 для предложения нулевого макета – kleopatra
Попробуйте положить панель jDesktopPane на свою панель, а затем добавить к ней строку меню. Я использую панель с вкладками в моем примере ниже, но она должна работать одинаково для панели.
JDesktopPane desktopPane = new JDesktopPane();
tabbedPane.addTab("New tab", null, desktopPane, null);
JMenuBar menuBar_1 = new JMenuBar();
menuBar_1.setBounds(0, 0, 441, 21);
desktopPane.add(menuBar_1);
hmm ... почему JDesktopPane? – kleopatra
Я создаю приложение, где я хочу иметь меню на каждой съемной вкладке, чтобы отображать несколько просмотров World Wind. Это казалось хорошим способом сделать это. Не удалось найти другой способ иметь отдельную строку меню для каждого окна. – user2248926
У меня есть другое решение, хотя вы должны добавить JMenuBar в «Другие компоненты» в NetBeans (достаточно хороший). Создайте JPanel, а затем добавьте еще один JPanel внутри (назовите его дочерним), который заполняет весь внешний JPA. Поместите свои элементы управления на дочернюю панель. Затем добавьте JMenuBar, но NetBeans поместит его в «Другие компоненты». Измените источник и в CTOR после того, как называет «initComponents» место вызова этой функции:
public static void setJPanelMenuBar(JPanel parent, JPanel child, JMenuBar menuBar) {
parent.removeAll();
parent.setLayout(new BorderLayout());
JRootPane root = new JRootPane();
parent.add(root, BorderLayout.CENTER);
root.setJMenuBar(menuBar);
root.getContentPane().add(child);
parent.putClientProperty("root", root); //if you need later
}
Например, ваш может выглядеть т е р так:
public MyPanel() {
initComponents();
setJPanelMenuBar(this, child, myMenuBar);
}
Работы для меня. Получил идею, посмотрев исходный код JInternalFrame. Все, что он делает, это заменить дочернюю JPanel на JRootPane(), а затем поместить ее в область содержимого корневой панели.
- 1. Добавить JMenuBar в JPanel
- 2. В NetBeans, как добавить jMenuBar в JPanel?
- 3. JMenuBar repaints my JPanel
- 4. JPanel появляется за JMenuBar
- 5. Добавление JMenuBar и JPanel в JFrame
- 6. добавить JMenuBar в JFrame
- 7. JMenuBar опускаясь на «обычай» JPanel и «стертой»
- 8. Как добавить ярлыки JMenuBar?
- 9. Невозможно добавить JMenuBar в апплет
- 10. Как добавить программу Jmenubar в mouseclick?
- 11. Изменение размера JTextField в JMenuBar
- 12. Добавить JPanel в фрейм, используя оператор if
- 13. Добавить JTree в JPanel в ActionPerformed
- 14. Как добавить jpanel в jpanel в java
- 15. JTextField продолжает заполнять пространство JMenuBar
- 16. JMenuBar делает JFrame «прыгать»
- 17. Java JMenuBar перекрашивать фон
- 18. Добавить JPanel вправо или влево в JPanel
- 19. Как добавить JPanel в центр другого JPanel?
- 20. JMenuBar не отображается
- 21. Добавить JScrollPane в JPanel
- 22. Добавить actionlistener в jpanel
- 23. Добавить ButtonGroup в JPanel
- 24. Добавить Jpanel в Jscrollbar
- 25. Добавить объект в JPanel
- 26. Добавить JButton в JPanel
- 27. Добавить ActionListener в JPanel
- 28. Добавить слушателя в JPanel
- 29. Добавить JPanel в JFrame
- 30. Добавление keylistener в JMenuBar
Я думал, что вы можете добавлять только JMenuBar's в JFrame's – Enrique
Works, не позволяйте мне добавлять его в самую верхнюю часть но достаточно близко! – Skizit
BorderLayout.PAGE_START, казалось, поставил его на первое место. –