Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > erco - problemas con codigo de JMenuBar Ayudaa

Hola sres. de java hispano.
Estuve buscando por la web y me encontre con el tipo de menu que estoy buscando, pero lo que pasa es que no puedo poner el codigo en mi proyecto.
el codigo en mension es el siguiente:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class MenuLayoutDemo {
public JMenuBar createMenuBar() {
JMenuBar menuBar = new JMenuBar();
menuBar.setLayout(new BoxLayout(menuBar, BoxLayout.PAGE_AXIS));
menuBar.add(createMenu("Menu 1"));
menuBar.add(createMenu("Menu 2"));
menuBar.add(createMenu("Menu 3"));

menuBar.setBorder(BorderFactory.createMatteBorder(0,0,0,1,
Color.BLACK));
return menuBar;
}

public JMenu createMenu(String title) {
JMenu m = new HorizontalMenu(title);
m.add("Menu item #1 in " + title);
m.add("Menu item #2 in " + title);
m.add("Menu item #3 in " + title);

JMenu submenu = new HorizontalMenu("Submenu");
submenu.add("Submenu item #1");
submenu.add("Submenu item #2");
m.add(submenu);

return m;
}

private static void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("MenuLayoutDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//Create and set up the content pane.
MenuLayoutDemo demo = new MenuLayoutDemo();
Container contentPane = frame.getContentPane();
contentPane.setBackground(Color.WHITE); //contrasting bg
contentPane.add(demo.createMenuBar(),
BorderLayout.LINE_START);

//Display the window.
frame.setSize(300, 150);
frame.setVisible(true);
}

public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}

class HorizontalMenu extends JMenu {
HorizontalMenu(String label) {
super(label);
JPopupMenu pm = getPopupMenu();
pm.setLayout(new BoxLayout(pm, BoxLayout.LINE_AXIS));
}

public Dimension getMinimumSize() {
return getPreferredSize();
}

public Dimension getMaximumSize() {
return getPreferredSize();
}

public void setPopupMenuVisible(boolean b) {
boolean isVisible = isPopupMenuVisible();
if (b != isVisible) {
if ((b==true) && isShowing()) {
//Set location of popupMenu (pulldown or pullright).
//Perhaps this should be dictated by L&F.
int x = 0;
int y = 0;
Container parent = getParent();
if (parent instanceof JPopupMenu) {
x = 0;
y = getHeight();
} else {
x = getWidth();
y = 0;
}
getPopupMenu().show(this, x, y);
} else {
getPopupMenu().setVisible(false);
}
}
}
}
}


Bueno el codigo arroja una venta con un menu vertical, pero ahora como hago para que en vez que se lance en un jframe se ejecute pero en un Jpane, dentro de un lugar especifico de mi proyecto???.

si alguien tiene la solucion le agradeceria mucho.

atte ErCo.

agosto 27, 2012 | Unregistered Commentererco