metodos y variables static

I
01 de Noviembre del 2005
Buenas quisiera consultar sobre un problema que tengo con los metodos y variables static.
tengo una clase principal y otra clase con una barra de menu, intento llamar la barra de menu desde la clase principal pero me pide que el metodo sea static y cuando lo hago static y hago todas las variables static pues el programa no se executa, aqui estan las clases

import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class principal extends JFrame
{

private static final long serialVersionUID = 5034590005397033463L;
private JPanel panelPrincipal = null;

public principal ()
{
super();
initialize();

}
private void initialize()
{
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(300, 200);
this.setJMenuBar(menuBarra.getMenuBarra());
this.setContentPane(getPanelPrincipal());
this.setTitle("0.1");
}
private JPanel getPanelPrincipal() {
if (panelPrincipal == null) {
panelPrincipal = new JPanel();
panelPrincipal.setLayout(new BorderLayout());
}
return panelPrincipal;
}
public static void main(String[] args)
{
principal programa = new principal();
programa.show();

}

}

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

public class menuBarra
{
public JMenuBar menuBar;
private JMenu archivo;
private JMenu edicion;
private JMenu opciones;
private JMenu ayuda;
private JMenuItem abrir;
private JMenuItem salir;
private JMenuItem copiar;
private JMenuItem pegar;
private JMenuItem configurar;
private JMenuItem acercaDe;

public menuBarra ()
{

}
public JMenuBar getMenuBarra ()
{
menuBar = new JMenuBar ();
menuBar.add (archivo);
menuBar.add (edicion);
menuBar.add (opciones);
menuBar.add (ayuda);
return menuBar;

}


}

si alguien sabe porque siempre me pide que sea static o alguna solucion, agradeceria su ayuda.

xscorpio
01 de Noviembre del 2005
checa esta parte de tu Código:

private void initialize()
{
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(300, 200);
this.setJMenuBar(menuBarra.getMenuBarra());
this.setContentPane(getPanelPrincipal());
this.setTitle("0.1");
}

Estás haciendo esto: menuBarra.getMenuBarra()
Estás intentando acceder a un método de esa clase sin haber creado previamente una instancia de ella. Ésto sólo se puede hacer si el método de dicha clase es static.
Para que no suceda eso simplemente declara una instancia de menuBarra antes de llamar a un método. Algo así:

menuBarra miBarra = new menuBarra();

....

this.setJMenuBar(menuBarra.getMenuBarra());

espero te sirva