Este es un codigo q estoy utilizando para hacer un Bloc de notas en JAVA tambien hago el uso de menus ahi te puedes dar una idea de como implementarlos a tu proyecto , lo siento si es algo largo pero igual ando aprendiendo java
Código :
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package helloworld;
/**
*
* @author Vgalicia
*/
import java.awt.*;
import java.awt.event.*;
import java.awt.Component.*;
import javax.swing.*;
import java.io.*;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class BlocNotas extends JFrame {
/*Creo los menus principales*/
BorderLayout borderLayout1 = new BorderLayout();
JPanel panel = new JPanel();
JMenuBar barraDeMenu = new JMenuBar();
JMenu archivo = new JMenu();
JMenu editar = new JMenu();
JMenu ver = new JMenu();
JMenu buscar = new JMenu();
JMenu ayuda = new JMenu();
JTextArea areaDeTexto = new JTextArea();
JScrollPane scrollPane = new JScrollPane();
JFileChooser jfc = new JFileChooser();
/*Creo los Sub - Menus de todos los Menus Principales*/
JMenuItem archivo_Nuevo = new JMenuItem();
JMenuItem archivo_Abrir = new JMenuItem();
JMenuItem archivo_Guardar = new JMenuItem();
JMenuItem archivo_GuardarComo = new JMenuItem();
JMenuItem archivo_Cerrar = new JMenuItem();
JMenuItem archivo_Salir = new JMenuItem();
JMenuItem editar_Deshacer = new JMenuItem();
JMenuItem editar_Rehacer = new JMenuItem();
JMenuItem editar_Cortar = new JMenuItem();
JMenuItem editar_Copiar = new JMenuItem();
JMenuItem editar_Pegar = new JMenuItem();
JMenuItem editar_Borrar = new JMenuItem();
JMenuItem editar_Preferencias = new JMenuItem();
JCheckBoxMenuItem ver_barraHerramientas = new JCheckBoxMenuItem();
JCheckBoxMenuItem ver_barraEstado = new JCheckBoxMenuItem();
JMenuItem buscar_Buscar = new JMenuItem();
JMenuItem buscar_Siguiente = new JMenuItem();
JMenuItem buscar_Anterior = new JMenuItem();
JMenuItem buscar_Ir_A_Linea = new JMenuItem();
JMenuItem ayuda_Contenido = new JMenuItem();
JMenuItem ayuda_AcercaDe = new JMenuItem ();
private LayoutManager borderLayout;
public BlocNotas(){
panel.setLayout (borderLayout);
super.setTitle("Bloc de Notas");
/*Establecemos el contenido de cada Menu*/
archivo.setText ("Archivo");
archivo.setMnemonic('A');
archivo_Nuevo.setText("Nuevo");
archivo_Abrir.setText("Abrir");
archivo_Guardar.setText("Guardar");
archivo_GuardarComo.setText("Guardad como ...");
archivo_Cerrar.setText("Cerrar");
archivo_Salir.setText("Salir");
editar.setText("Editar");
editar.setMnemonic('E');
editar_Deshacer.setText("Deshacer");
editar_Rehacer.setText("Rehacer");
editar_Cortar.setText("Cortar");
editar_Copiar.setText("Copiar");
editar_Pegar.setText("Pegar");
editar_Borrar.setText("Borrar");
editar_Preferencias.setText("Preferencias");
ver.setText("Ver");
ver.setMnemonic('V');
ver_barraHerramientas.setText("Barra de Herramientas");
ver_barraEstado.setText("Barra de Estado");
buscar.setText("Buscar");
buscar.setMnemonic('B');
buscar_Buscar.setText("Buscar");
buscar_Siguiente.setText("Buscar Siguiente");
buscar_Anterior.setText("Buscar Anterior");
buscar_Ir_A_Linea.setText("Ir a Linea");
ayuda.setText("Ayuda");
ayuda.setMnemonic('U');
ayuda_Contenido.setText("Contenido");
ayuda_AcercaDe.setText("Acerca de");
/* Deshabilito las opciones de Buscar como estado incial
* ya que en ningun momento se inicio una busqueda
*/
buscar_Siguiente.setEnabled(true);
buscar_Anterior.setEnabled(true);
/* Deshabilito las opciones de Editar como estado inicial
* ya que en ningun momento se edito el archivo
*/
editar_Deshacer.setEnabled(true);
editar_Rehacer.setEnabled(true);
editar_Cortar.setEnabled(true);
editar_Copiar.setEnabled(true);
editar_Pegar.setEnabled(true);
editar_Borrar.setEnabled(true);
/* Habilito las opciones de Ver ya que al inicio de todo
* editor se muestra la barra de Estado y de Herramientas
*/
ver_barraHerramientas.setSelected(true);
ver_barraEstado.setSelected(true);
/* Agrego todas las opciones a la barra de Menu */
barraDeMenu.add(archivo);
barraDeMenu.add(editar);
barraDeMenu.add(ver);
barraDeMenu.add(buscar);
barraDeMenu.add(ayuda);
/* Agrego a los submenus para cada menu correspondiente */
archivo.add(archivo_Nuevo);
archivo.add(archivo_Abrir);
archivo.add(archivo_Guardar);
archivo.add(archivo_GuardarComo);
archivo.add(archivo_Cerrar);
archivo.add(archivo_Salir);
editar.add(editar_Deshacer);
editar.add(editar_Rehacer);
editar.add(editar_Cortar);
editar.add(editar_Copiar);
editar.add(editar_Pegar);
editar.add(editar_Borrar);
editar.add(editar_Preferencias);
ver.add(ver_barraHerramientas);
ver.add(ver_barraEstado);
buscar.add(buscar_Buscar);
buscar.add(buscar_Siguiente);
buscar.add(buscar_Anterior);
buscar.add(buscar_Ir_A_Linea);
ayuda.add(ayuda_Contenido);
ayuda.add(ayuda_AcercaDe);
/*Agregamos los Menus al Frame*/
this.setJMenuBar(barraDeMenu);
this.getContentPane().add(panel, BorderLayout.CENTER);
this.getContentPane().setPreferredSize(new Dimension(500, 400));
this.getContentPane().add(scrollPane, BorderLayout.CENTER);
scrollPane.getViewport().add(areaDeTexto, null);
/* Eventos de Todos los Elementos del Menu */
// archivo_Nuevo = Creo un Nuevo Archivo
archivo_Nuevo.addActionListener(new ActionListener(){
public void actionPerformed (ActionEvent e ){
areaDeTexto.setText("");}
});
// archivo_Abrir = Abro un Archivo con FileChooser + Stream
archivo_Abrir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(e.getSource() == archivo_Abrir) {
int abroArchivo = jfc.showOpenDialog(BlocNotas.this);
if(abroArchivo == jfc.APPROVE_OPTION) {
File archivo = jfc.getSelectedFile();
FileInputStream miArchivo;
int sizeArchivo = Long.valueOf(archivo.length()).intValue();
byte archivoALeer[]= new byte[sizeArchivo];
try {
miArchivo = new FileInputStream(archivo.getPath());
miArchivo.read(archivoALeer);
areaDeTexto.append(new String(archivoALeer));
miArchivo.close();
}
catch(IOException ex)
{
System.out.println("Error : "+ex.getMessage());
}
}
areaDeTexto.setCaretPosition(areaDeTexto.getDocument().getLength());
}
}
});
// archivo_Guardar = Guardo mediante el Documento abierto FileChooser + Stream
archivo_Guardar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e ){
File archivo = jfc.getSelectedFile();
FileOutputStream miArchivo;
String contenidoTexto = new String();
try{
miArchivo = new FileOutputStream (archivo.getPath());
contenidoTexto = areaDeTexto.getText();
miArchivo.write(contenidoTexto.getBytes());
miArchivo.close();
}
catch (IOException ex){
System.out.println("Error : " + ex.getMessage());
}
}
});
// archivo_GuardarComo = Guardo mediante el Documento Abierto por el FileChooser + Stream
archivo_GuardarComo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(e.getSource() == archivo_GuardarComo) {
int guardoArchivo = jfc.showSaveDialog(BlocNotas.this);
if(guardoArchivo == jfc.APPROVE_OPTION) {
File archivo = jfc.getSelectedFile();
FileOutputStream miArchivo;
String contenidoTexto = new String();
try {
miArchivo = new FileOutputStream(archivo.getPath());
contenidoTexto = new String(areaDeTexto.getText());
miArchivo.write(contenidoTexto.getBytes());
miArchivo.close();
}
catch(IOException ex) {
System.out.println("Error : "+ex.getMessage());
}
}
}
}
});
// archivo_Cerrar = Cierro el JTextArea
archivo_Cerrar.addActionListener(new ActionListener(){
public void actionPerformed (ActionEvent e ){
panel.removeAll();
borderLayout1.removeLayoutComponent(areaDeTexto);
}
});
// archivo_Salir = Salir del editor
archivo_Salir.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e ){
System.exit(0);
}
});
//editar_Cortar = corta el texto seleccionado y lo guardamos en un ClipBoard
editar_Cortar.addActionListener(new ActionListener(){
public void actionPerformed (ActionEvent e){
if (e.getSource() == editar_Cortar){
areaDeTexto.cut();
}
}
});
editar_Copiar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if (e.getSource() == editar_Copiar){
areaDeTexto.copy();
}
}
});
editar_Pegar.addActionListener(new ActionListener(){
public void actionPerformed (ActionEvent e){
if (e.getSource() == editar_Pegar){
areaDeTexto.paste();
}
}
});
editar_Borrar.addActionListener(new ActionListener(){
public void actionPerformed (ActionEvent e){
if (e.getSource() == editar_Borrar){
areaDeTexto.
}
}
});
/*
// buscar_Buscar = Busco el String q ingreso
// buscar_Buscar = Busco String que ingreso
buscar_Buscar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
areaDeTexto.s
}
});
*/
// ayuda_AcercaDe mi <??>
ayuda_AcercaDe.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String texto = "Este es mi primer programa que decidi hacer porque supuse conveniente \n para poner en practica todos 'mis conocimientos' adquiridos luego de leer el book User - Java"; // lo que quiero que aparezca en la ventana creada
JOptionPane.showMessageDialog(new JFrame(), texto, "Acerca de Rami Editor", JOptionPane.INFORMATION_MESSAGE); // titulo para las ventanas
}
});
/* Empaqueto y muestro el Panel con su contenido */
super.pack();
super.setVisible(true);
};// final de public BlocNotas
public static void main(String[] args) {
// TODO code application logic here
new BlocNotas();
}//Final de main
}// Final de clase MenuBar