[RESOLVIDO] Adicionar JMenu a um JToolBar

5 respostas
eliangela

Olá!

Preciso adicionar um JMenu a um JToolBar, mas não estou conseguindo fazer aparecer os JMenuItem daqui...
Este é um código resumido do que eu pretendo.

public class NewClass extends JFrame {

	private JMenu bExportar;
	private JToolBar toolBar;

	public NewClass() throws HeadlessException {
		init();
	}

	private void init() {
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setSize(800, 600);

		toolBar = new JToolBar();
		setLayout(new BorderLayout());

		bExportar = new JMenu("Exportar");
		bExportar.setEnabled(true);
		bExportar.setMaximumSize(new Dimension(95, 95));
		bExportar.setIcon(new ImageIcon(getClass().getResource("/br/com/medstorm/medfourtechnic/telas/img/export.png")));
		bExportar.setHorizontalTextPosition(SwingConstants.CENTER);
		bExportar.setVerticalTextPosition(SwingConstants.BOTTOM);

		JMenuItem mExportarXLS = new JMenuItem("Documento do Microsoft Excel (XLS)");
		JMenuItem mExportarDOC = new JMenuItem("Documento do Microsoft Word (DOC)");
		JMenuItem mExportarPDF = new JMenuItem("Documento PDF");
		bExportar.add(mExportarDOC);
		bExportar.add(mExportarPDF);
		bExportar.add(mExportarXLS);

		getContentPane().add(toolBar, BorderLayout.NORTH);
		toolBar.add(bExportar);
	}

	public static void main(String[] args) {
		new NewClass().setVisible(true);
	}
}

Obrigada!

5 Respostas

Ivan_Alves

Tenta criar um JMenuBar ai você adiciona esse JMenu que é o principal dentro do JMenuBar e então adiciona o JMenuBar ao seu componente JToolBar

eliangela

Obrigada Ivan Alves!
Funcionou perfeito!

ficou assim:
public class NewClass extends JFrame {

	private JMenu bExportar;
	private JToolBar toolBar;
	private JMenuBar menuBar;

	public NewClass() throws HeadlessException {
		init();
	}

	private void init() {
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setSize(800, 600);

		menuBar = new JMenuBar();

		toolBar = new JToolBar();
		toolBar.setEnabled(true);
		setLayout(new BorderLayout());

		bExportar = new JMenu("Exportar");
		bExportar.setEnabled(true);
		bExportar.setIcon(new ImageIcon(getClass().getResource("/br/com/medstorm/medfourtechnic/telas/img/export.png")));
		bExportar.setHorizontalTextPosition(SwingConstants.CENTER);
		bExportar.setVerticalTextPosition(SwingConstants.BOTTOM);

		JMenuItem mExportarXLS = new JMenuItem("Documento do Microsoft Excel (XLS)");
		JMenuItem mExportarDOC = new JMenuItem("Documento do Microsoft Word (DOC)");
		JMenuItem mExportarPDF = new JMenuItem("Documento PDF");

		bExportar.add(mExportarDOC);
		bExportar.add(mExportarPDF);
		bExportar.add(mExportarXLS);

		getContentPane().add(toolBar, BorderLayout.NORTH);
		toolBar.add(menuBar);
		menuBar.add(bExportar);
	}

	public static void main(String[] args) {
		new NewClass().setVisible(true);
	}
}

Agora eu tenho só mais uma pergunta...
usando o menu do jeito anterior (adicionando direto no JToolBar), o JMenu ficava parecendo um botão e ficava com uma setinha, igual na imagem que enviei por anexo.
Agora, com esse novo código, o menu continua parecendo um botão, mas não tem setinha indicando submenus.
Como que eu posso fazer essa setinha aparecer?

Obrigada

TheKill

Adicione o icone ao seu JMenuBar

Ivan_Alves

Até onde eu sei a aparência padrão do menu fica igual ao menus normais(sem essa seta), agora se quiser que fique dessa forma precisa utilizar um componente customizado.

flw!

eliangela

Se eu colocar o menu direto no JToolBar, fica com a setinha;
mas se eu colocar o menu no JMenuBar, e o JMenuBar no JToolBar, fica com a aparência normal de menu.

Deixa assim mesmo…
Obrigada pessoal pela ajuda!

Criado 12 de julho de 2011
Ultima resposta 12 de jul. de 2011
Respostas 5
Participantes 3