Boa noite,
estou tentando fazer os botões da minha interface gráfica principal ficarem ao lado de alguns menus, como nas imagens desse site.
O que eu tentei:
- Colocar uma JMenuBar ao lado de uma JToolBar, dentro de um painel com FlowLayout para a esquerda;
- Colocar a JMenuBar dentro da JToolBar;
- Colocar os menus na JToolBar;
Em todas elas alguma coisa ficou esquisito.
A melhor coisa que conseguir fazer foi adicionar os botões diretamente na JMenuBar principal, mas os menus ficaram enormes, acompanhando a geometria dos botões.
Eu queria algo semelhante a isso, mas que a geometria dos menus fosse preservada.
Alguém poderia me dar uma luz? Não acredito que seja algo complicado, to me sentindo somar 2+2 e achar 5
<>
[code]package com.venus.ui;
import java.awt.EventQueue;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.UIManager;
/**
-
Apenas um teste =D
*/
public class ApplicationWindow extends JFrame {// nossa barra de menus
JMenuBar menuBar;
String[] menus = new String[]{
“Arquivo”,
“Ações”,
“Ferramentas”,
“Ajuda”
};
// referencia para alguns ícones
String[] iconRef = new String[]{
"/com/venus/rsrc/icons/document-new.png",
"/com/venus/rsrc/icons/document-open.png",
"/com/venus/rsrc/icons/document-save.png",
"/com/venus/rsrc/icons/document-save-as.png",
"/com/venus/rsrc/icons/edit-undo.png",
"/com/venus/rsrc/icons/edit-redo.png",
"/com/venus/rsrc/icons/document-properties.png"
};/**
-
Construtor
*/
public ApplicationWindow() {
// instanciando
menuBar = new JMenuBar();
for (int i = 0; i < menus.length; i++) {
JMenu menu = new JMenu(menus[i]);
for (int j = 0; j < 4; j++) {
JMenuItem item = new JMenuItem("Item " + (j + 1));
menu.add(item);
}
menuBar.add(menu);
}// adicionando botões aa barra de menus
// FIXME: é possível ajustar a geometria dos menus (?)
for (int i = 0; i < iconRef.length; i++) {
JButton button = new JButton(new ImageIcon(getClass().getResource(iconRef[i])));
button.setBorderPainted(false); // para o botão ficar com aparência de quando está numa JToolBar
menuBar.add(button);
}// configurando nossa janela
setJMenuBar(menuBar);
setSize(600, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {public void run() { try { JFrame.setDefaultLookAndFeelDecorated(true); String sysLaf = UIManager.getSystemLookAndFeelClassName(); UIManager.setLookAndFeel(sysLaf); new ApplicationWindow().setVisible(true); } catch (Exception ex) { System.out.println("Ah não =("); ex.printStackTrace(); } } });
}
}
[/code] -