Possibilidades com JMenuBar do Netbeans[RESOLVIDO]

8 respostas
ThiagoHonorato

Olá Pessoal !!!

Estou precisando saber se exite alguma possibilidade de não colocar o JMenuBar na parte superior do Frame.

Estou criando o menu principal do meu programa e queria colocar o logo da empresa na parte superior do Frame e logo em baixo colocar o JMenuBar.

Tem como fazer isso? Existe alguma maneira?

Obrigado!

8 Respostas

S

Sei fazer com MigLayout, disponível em http://www.miglayout.com

Se você gosta de trabalhar com outro gerenciador de layout, tente com outro.

//ANTES DE ADICIONAR TODOS OS JMENUS E JMENUITENS
seuJMenuBar.setLayout(new MigLayout());

ImageIcon icone = new ImageIcon(Toolkit.getDefaultToolkit().createImage("caminho_do_seu_icone.png")); //Seu ícone
JLabel lab = new JLabel(icone);
seuJMenuBar.add(lab, "wrap"); //wrap é a quebra de linha.

//A PARTIR DAQUI ADICIONE OS JMENUS NORMALMENTE
ThiagoHonorato

silasyudi, não entendi muito bem, preciso fazer algum download?

Quando faço isso da erro, diz que não existe a classe MigLayout()

S

Tem que fazer o download do .jar do MigLayout no site dele, www.miglayout.com, e acrescentar este .jar ao projeto.

ThiagoHonorato

silasyudi, não estou encontrando o .jar no site, poderia me explicar o caminho correto para download.

Se não for demais…

Vlw, Abraço

S

http://www.migcalendar.com/miglayout/versions/4.0/miglayout-4.0.jar

É a versão mais recente.

ThiagoHonorato

silasyudi, consegui fazer o download do .jar e colocar no meu projeto, consegui também colocar o logo da empresa (pra quem estou desenvolvendo) na parte superior da janela (em cima da barra de menu).

Só que não ficou como esperava.

Exemplo:

Na barra de menu eu tenho, Arquivo | Cadastro | Consulta, todos com sub-itens. Ao adicionar o logo da empresa (que por sinal ocupa toda a parte horizontal da tela por alguns centímetros na vertical) o menu “Arquivo” se estende pelo tamanho da imagem adicionada e os demais menus (Cadastro e Consulta) começam após o termino horizontal da imagem.

Gostaria que a imagem ocupasse toda a parte horizontal e os menus ficassem um seguido do outro (como se não tivesse adicionado a imagem).

S

As duas formas abaixo podem dar certo:

Na inserção do primeiro JMenuItem coloque como segundo parâmetro a string abaixo. No lugar de 3, coloque o número total de JMenuItens que serão inseridas no JMenuBar. Esse parâmetro é só na inserção do primeiro JMenuItem, o restante se insere normalmente.

seuJMenuBar.add(arquivo, "split 3");

O parâmetro “split n” significa que a célula atual será dividida em n partes.

A segunda forma, é na inserção do logo é acrescentar a palavra “span”:

//ESTAVA ASSIM:
seuJMenuBar.add(labelComOLogo, "wrap");

//FICA ASSIM:
seuJMenuBar.add(labelComOLogo, "wrap, span");

O parâmetro “wrap” significa quebra de linha e “span” significa que a célula atual ocupará todas as células vazias à sua frente e abaixo.

Prefiro a segunda forma, pois na primeira todas as vezes que for aumentar o número de menus deve lembrar de alterar o número de splits.

OBS: MigLayout é um gerenciador de layout, ou seja, você pode usá-lo não somente aqui, mas em JPanels, JFrames, JDialogs, etc…

ThiagoHonorato

silasyudi, consegui deixar o logo do jeito que eu quero, ficou PERFEITO!!!

Cara, muito obrigado pela sua ajuda…

Que Deus te abençoe muito meu amigo!

Um abraço

Criado 19 de abril de 2013
Ultima resposta 27 de mai. de 2013
Respostas 8
Participantes 2