Posicionamento de um 'JMenu' em um 'JMenuBar'

Olá pessoal,

Esse simples código não está funcionando, pois o menu está centralizado na barra :

[code]
JMenu menu1 = new JMenu(“Ajuda”);
menu1.add(new JMenuItem(“Nomeclatura”));
menu1.add(new JSeparator());
menu1.add(new JMenuItem(“Sobre…”));
menu1.setAlignmentX( Component.RIGHT_ALIGNMENT ) ;

JMenuBar bar = new JMenuBar();
bar.add(menu1);

outerPanel = new JPanel();
outerPanel.add( bar ) ;
[/code]Gostaria que a opção de Ajuda ficasse á direita, que é o padrão dos aplicativos.
Estou esquecendo algum detalhe ?

+++

Não sei se tem um jeito mais fácil de alinhar os menus, mas uma alternativa seria mudar layout manager do JMenuBar.

Eric,

Desculpa se a pergunta é básica, mas como eu poderia fazer isso ?
Pressupõe o uso do netbeans ?
( que por sinal, não o tenho instalado )

+++

Vou passar um exemplo com GridBagLayout, que está na API. Mas se estiver usando MigLayout no seu projeto, aconselho fazer com ele.

JMenuBar bar = new JMenuBar(); bar.setLayout(new GridBagLayout()); // Setei o layout como GridBag GridBagConstraints esquerda = new GridBagConstraints(); // Constraint para menus a esquerda esquerda.anchor = GridBagConstraints.WEST; GridBagConstraints direita = new GridBagConstraints(); // Constraint para menu a direita e com espaçamento direita.anchor = GridBagConstraints.EAST; direita.weightx = 1.0; bar.add(new JMenuItem("Primeiro"), esquerda); // Na hora de adicionar tem que passar uma constraint bar.add(new JMenuItem("Segundo"), esquerda); bar.add(new JMenuItem("Terceiro"), esquerda); bar.add(new JMenuItem("Último"), direita);Não precisa usar exatamente o GridBag, pode ser qualquer layout que atenda sua necessidade. Pode haver uma forma de fazer isso sem mudar o layout, inclusive já cheguei até a pesquisar sobre, mas sinceramente eu desconheço.

[quote=andre_teprom]Pressupõe o uso do netbeans ?
( que por sinal, não o tenho instalado )[/quote]
Pressuponho apenas que usa swing, por causa do código postado. Acho que a IDE não influencia nisso. Eu mesmo utilizo o Eclipse, mas já usei o Net Beans também.

Outro detalhe que passou despercebido quando olhei o post a primeira vez. O JFrame tem um método setJMenuBar, que serve para especificar o menu bar vinculado ao frame:

frame.setJMenuBar(bar);Não é necessário adicionar com o método add.

Maravilha !!!

Eric, procedi conforme a sugestão do post anterior, e funcionou perfeitamente.
Muito obrigado novamente.

+++

Você não precisa de nenhum alinhamento. Apenas o setJMenuBar resolve.

JMenu menu1 = new JMenu("Ajuda");
menu1.add(new JMenuItem("Nomeclatura"));
menu1.add(new JSeparator());
menu1.add(new JMenuItem("Sobre..."));
menu1.setAlignmentX( Component.RIGHT_ALIGNMENT ) ;  

JMenuBar bar = new JMenuBar();
bar.add(menu1);

frame.setJMenuBar( bar ) ;