Java - Menu alineado a la derecha de la barra

   
Vista:

Menu alineado a la derecha de la barra

Publicado por Alejandro Borisonik agborisonik@yahoo.com.ar (2 intervenciones) el 09/11/2013 02:42:13
Después de dar muchas vueltas, lo conseguí. En google no hay (hasta el momento) una respuesta [clara].
Mi inquietud era lograr colocar un Menú (o varios) a la derecha de una JMenuBar.
Utilizo NetBeans v7.0.1, pero supongo que servirá en cualquier entorno.
Lo logré haciendo lo siguiente:
Cada vez que se redimensiona la JMenuBar, hago que el programa calcule la nueva posición del menú de interés - mnuAyuda -, relacionando los anchos de dicho menú, de la barra y de sus bordes:
ancho de barra - ancho de menú - ancho del borde derecho

1) Agrego un Listener para la JMenuBar, en el momento de creación:
1
2
3
4
5
menuBar.addComponentListener(new java.awt.event.ComponentAdapter() {
	public void componentResized(java.awt.event.ComponentEvent evt) {
		menuBar_componentResized(evt);
	}
});
2) Creo la siguiente función:
1
2
3
4
5
6
7
private void menuBar_componentResized(java.awt.event.ComponentEvent evt) {
	mnuAyuda.setLocation(
		menuBar.getSize().width - mnuAyuda.getSize().width -
			menuBar.getBorder().getBorderInsets(menuBar).right,
		mnuAyuda.getY()
	);
}


Con un poco de código podrán alinearse varios menús; el esfuerzo se los dejo a ustedes ;-)

Que sea útil.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder