Problemas com JFrame e JMenu

pessoal nao estou conseguindo deixar o meu programa igual ao que o professor pediu, eu adiciono eles dentro do getContentPane() mas nao está ficando como eu quero…

vejam o código…


package br.unipaulistana.prog3.swing.event.ExemploFileChooser;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class ExemploFileChooserComMenu extends JFrame implements ActionListener {
	private JButton botaoSave;
	private JButton botaoOpen;
	private JTextArea telaTexo;
	private JFileChooser jfc;
	private FileUtil fileUtil;
	
	public ExemploFileChooserComMenu(String titulo) {
		super(titulo);
		botaoSave = new JButton("Save");
		botaoSave.addActionListener(this);
		botaoOpen = new JButton("Open");
		botaoOpen.addActionListener(this);
		telaTexo = new JTextArea(50, 50);
		jfc = new JFileChooser();
		fileUtil = new FileUtil();
	}
	
	private JMenuBar createJMenuBar() {
		JMenuBar menuBar = new JMenuBar();
		
		// JMemu File
		JMenu fileMenu = new JMenu("File");
		fileMenu.setMnemonic(KeyEvent.VK_F);
		menuBar.add(fileMenu);
		
		// JMenuItem Open File
		JMenuItem openFile = new JMenuItem("Open File", KeyEvent.VK_O);
		openFile.addActionListener(this);
		fileMenu.add(openFile);
		
		// JMenuItem Save File
		JMenuItem saveFile = new JMenuItem("Save File", KeyEvent.VK_S);
		saveFile.addActionListener(this);
		fileMenu.add(saveFile);
		
		// JMenuItem Exit
		JMenuItem sair = new JMenuItem("Exit", KeyEvent.VK_X);
		sair.addActionListener(this);
		fileMenu.add(sair);
		
		return menuBar;
	}
	
	private void mostrarTela() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLocation(300, 50);
		JPanel panel = new JPanel();
		setLayout(new GridLayout(3, 1));
		getContentPane().add(createJMenuBar(), BorderLayout.CENTER);
		panel.add(botaoOpen, BorderLayout.CENTER);
		panel.add(botaoSave);
		JScrollPane scroll = new JScrollPane(telaTexo,
				JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
				JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		getContentPane().add(panel, BorderLayout.NORTH);
		getContentPane().add(scroll, BorderLayout.CENTER);
		setVisible(true);
		pack();
		
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		// checar se o evento é de JMenuItem
		if (e.getSource() instanceof JMenuItem) {
			JMenuItem menuItem = (JMenuItem) e.getSource();
			
			String texto = menuItem.getText();
                                                 // ações que executarei......
		}
	}
	
	public static void main(String[] args) {
		ExemploFileChooserComMenu executar = new ExemploFileChooserComMenu("" +
				"ExemploFileChooserComMenu");
		executar.mostrarTela();
	}
	
}