Como farzer um JMenu Lateral

Como faco para transformar esse JMenu superior em JMenu lateral.

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.KeyEvent;

import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;


public class Menu extends JFrame {
	
	
	
	public JMenuBar Menus(){
		
	    JMenuBar barra = new JMenuBar();
		JMenu arquivo = new JMenu("Arquivo");
		arquivo.setMnemonic(KeyEvent.VK_A);
		JMenu ajuda = new JMenu("Ajuda");
		ajuda.setMnemonic(KeyEvent.VK_J);
		JMenuItem novo = new JMenuItem("Novo");
		novo.setMnemonic(KeyEvent.VK_N);
		JMenuItem abrir = new JMenuItem("Abrir");
		abrir.setMnemonic(KeyEvent.VK_B);
		JMenuItem sair = new JMenuItem ("Sair");
		sair.setMnemonic(KeyEvent.VK_S);
		arquivo.add(novo);
		arquivo.add(abrir);
		arquivo.add(sair);
		barra.add(arquivo);
		barra.add(ajuda);
	
	return barra;
	}
	
	public void Desktop(){		
		    
		    
		    JDesktopPane desktop = new JDesktopPane();
		    setJMenuBar(Menus());
		    
		    getContentPane().add(desktop,BorderLayout.SOUTH);
		    desktop.setLayout(new GridLayout(1,2));
		    setDefaultCloseOperation(EXIT_ON_CLOSE);
			
		    setSize(540,540);//lagura ,altura
			setVisible(true);
					
			
		}
	
	
	
	public static void main(String[] args) {
		Menu m = new Menu();
		m.Desktop();
	}
}

Olá,

Não vou me lembrar exatamente como você pode fazer isso; não lembro de cabeça, vou te dar as pistas iniciais:

  • No JDesktopPane nada mais é que um painel que utiliza um BorderLayout como gerenciador de layout. Então poderás acessa-lo e colocar componentes em reiões específicas. Assim poderás fazer sua barra lateral ou uma barra de status.

  • Quando fizer isso, provavelmente terás um problema: as janelas de menu não irão aparecer. Então deverás verificar nos tutoriais da Sun, parte de swing, um que fala sobre hierarquias e composição das janelas do swing - modelo de implementação das janelas do swing - então terás que fazer aluma alteração nessa composição. Acho que entra nessa também o decorator das janela.

Beleza?

Att,
Emerson Aguiar Noronha

acho que é algo assim

		JFrame f = new JFrame("Janela");
		f.setSize(800,600);
		
		JMenuBar b = new JMenuBar();
		JMenu m = new JMenu("Arquivos");
		JMenuItem i = new JMenuItem("Abrir...");
		b.add(m);
		m.add(i);
		f.getContentPane().add(b, BorderLayout.WEST);
		f.setVisible(true);		

mas ficou veio pra caramba… hauhauahua…

Isso eu já tinha testado e não ficou do jeito q eu quero.

import java.awt.BorderLayout;
 import java.awt.GridLayout;
 import java.awt.event.KeyEvent;
 
 import javax.swing.JDesktopPane;
 import javax.swing.JFrame;
 import javax.swing.JMenu;
 import javax.swing.JMenuBar;
 import javax.swing.JMenuItem;
 
 
 public class Menu extends JFrame {
 	
 	
 	
 	public JMenuBar Menus(){
 		
 	    JMenuBar barra = new JMenuBar();
 		JMenu arquivo = new JMenu("Arquivo");
 		arquivo.setMnemonic(KeyEvent.VK_A);
 		JMenu ajuda = new JMenu("Ajuda");
 		ajuda.setMnemonic(KeyEvent.VK_J);
 		JMenuItem novo = new JMenuItem("Novo");
 		novo.setMnemonic(KeyEvent.VK_N);
 		JMenuItem abrir = new JMenuItem("Abrir");
 		abrir.setMnemonic(KeyEvent.VK_B);
 		JMenuItem sair = new JMenuItem ("Sair");
 		sair.setMnemonic(KeyEvent.VK_S);
 		arquivo.add(novo);
 		arquivo.add(abrir);
 		arquivo.add(sair);
 		barra.add(arquivo);
 		barra.add(ajuda);
 	
 	return barra;
 	}
 	
 	public void Desktop(){		
 		    
 		    
 		    JDesktopPane desktop = new JDesktopPane();
 		    getContentPane().add(Menus(),BorderLayout.WEST);
 		    //setJMenuBar(Menus());
 		

// com getcontentpane

    
 		    getContentPane().add(desktop,BorderLayout.SOUTH);


 		    desktop.setLayout(new GridLayout(1,2));
 		    setDefaultCloseOperation(EXIT_ON_CLOSE);
 			
 		    setSize(540,540);//lagura ,altura
 			setVisible(true);
 					
 			
 		}
 	
 	
 	
 	public static void main(String[] args) {
 		Menu m = new Menu();
 		m.Desktop();
 	}
 }