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!
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
silasyudi, não entendi muito bem, preciso fazer algum download?
Quando faço isso da erro, diz que não existe a classe MigLayout()
Tem que fazer o download do .jar do MigLayout no site dele, www.miglayout.com, e acrescentar este .jar ao projeto.
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
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).
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…
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