Java - Menu alineado a la derecha de la barra

 
Vista:

Menu alineado a la derecha de la barra

Publicado por Alejandro Borisonik (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

Menu alineado a la derecha de la barra

Publicado por Nilton (1 intervención) el 22/07/2017 18:19:43
Amigo eso en parte se hace?
Es en el constructor?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Menu alineado a la derecha de la barra

Publicado por Carlos (1 intervención) el 19/05/2018 19:15:42
A mi me funciona así
NombreDeTuJMenuBar.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar