Tengo un JMenuBar y un JPanel. Me gustaría agregar el JMenuBar al JPanel. ¿Cómo lo haría?agregar JMenuBar a un JPanel?
Respuesta
Puede utilizar un BorderLayout para sus JPanel y poner el JMenuBar en la zona norte del panel con
JPanel p = new JPanel();
p.setLayout(new BorderLayout());
p.add(menubar, BorderLayout.NORTH);
JMenuBar es un JComponent y puede ser agregado a un contenedor como cualquier otro JComponent.
JMenuBars se configuran en el JFrame utilizando el método setJMenuBar.
Consulte el siguiente tutorial sobre cómo usarlos.
http://download.oracle.com/javase/tutorial/uiswing/components/menu.html
¿No es posible agregarlos directamente a un JPanel? Tengo otros artículos allí ... si agrego un JFrame ¿no dibujaré sobre los elementos de mi Panel? – Skizit
Bueno, un JMenuBar es solo otro JComponent, por lo que puedes agregarlo a tu JPanel como lo harías con cualquier otra cosa. Sin embargo, como está diseñado para ser adjuntado a un JFrame, puede que no funcione correctamente (o incluso que lo haga) – Codemwnci
Lo intenté pero JMenuItem
con Jmenu
y JmenuBar
no se añadió a JPanel
. Pero puede obtener esa sensación si declara el diseño de JFrame
como nulo, luego use setBounds(x, y, width, height)
en la instancia JMenuBar
y luego agregue la barra de menú a JFrame
.
-1 para sugerir un diseño nulo – kleopatra
Intente poner un jDesktopPane en su panel y luego agregue una barra de menú a eso. Estoy usando un panel con pestañas en mi ejemplo a continuación, pero debería funcionar igual para un panel.
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 ... ¿por qué un JDesktopPane? – kleopatra
Estoy construyendo una aplicación donde quiero tener una barra de menú en cada pestaña extraíble para mostrar múltiples vistas del viento del mundo. Esto parecía una buena manera de hacerlo. No se pudo encontrar otra forma de tener una barra de menú separada para cada ventana. – user2248926
tengo otra solución, aunque hay que añadir el JMenuBar en los "otros componentes" en NetBeans (lo suficientemente bueno). Crea un JPanel y luego agrega otro JPanel adentro (llámalo hijo) que llene todo el JPter externo. Coloque sus controles en el panel secundario. A continuación, agregue el JMenuBar, pero NetBeans lo colocará en "Otros componentes". Editar su fuente y en el ctor después de que se llama "initComponents" Realizar una llamada a esta función:
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
}
Por ejemplo, su ctor podría tener este aspecto:
public MyPanel() {
initComponents();
setJPanelMenuBar(this, child, myMenuBar);
}
funciona para mí. Entendí la idea mirando el código fuente de JInternalFrame. Todo lo que hace es reemplazar el JPanel hijo por un JRootPane() y luego colocar al niño en el panel de contenido del panel raíz.
- 1. En NetBeans ¿cómo agrego un jMenuBar a un JPanel?
- 2. Agregar JScrollPane a un JPanel
- 3. Java: ¿Cómo puedo agregar un JMenu a un JPanel o crear un botón desplegable?
- 4. ¿Cómo agregar los atajos de JMenuBar?
- 5. NetBeans: cómo agregar ScrollBar a JPanel
- 6. JFrame eliminar JPanels y agregar un nuevo JPanel
- 7. Cambiar un borde JMenuBar
- 8. agregando JLayeredPane a JPanel
- 9. Añadir actionlistener a jpanel
- 10. Agregando JPanels adicionales a un JPanel
- 11. agregar espacio entre JFrame y JPanel
- 12. JPanel Sustitución con JPanel en un JFrame
- 13. JPanel a JFrame
- 14. Agregue un JFreeChart en JPanel
- 15. Desplazamiento de un JPanel
- 16. Cómo agrego componentes a un JPanel en tiempo de ejecución
- 17. JFileChooser incrustado en un JPanel
- 18. loop a través de JPanel
- 19. ¿Cómo integrar un JMenuBar en una arquitectura MVC en Java?
- 20. Swing JPanel no volverá a pintar
- 21. JPanel Padding en Java
- 22. Centrar un JLabel en un JPanel
- 23. Repainting un JPanel dentro de un marco
- 24. JPanel desplazable
- 25. JPanel transparente
- 26. Conversión de JPanel a la imagen
- 27. JPanel no tiene respuesta a KeyListener caso
- 28. De JFrame a JPanel en Netbeans
- 29. Agregando espaciado entre elementos en JMenuBar
- 30. ¿Por qué es mejor adjuntar un JPanel?
Pensé que solo puedes agregar JMenuBar a JFrame's – Enrique
Works, no me permitirán agregarlo a la parte superior pero lo suficientemente cerca! – Skizit
BorderLayout.PAGE_START parecía ponerlo en la parte superior para mí. –