lunes, 3 de septiembre de 2012

HOY 2 X 1 Menú en forma Horizontal, Añadir textura a un JPanel en JAVA



Hoy es Lunes de 2 X 1, y les traigo doscódigossencillos pero muyútiles.
alguna vez hemos tenido la necesidad de crear unMenúde forma horizontal pero elJMenuBar que viene por defecto ,siempre sesitúaen la parte superior de la ventana por la simplerazónqueasíesta diseñado,pero hoy les voy a enseñar como darle otraorientación algo que no es muycomplejo.

primero debe de crear unmétodoque me retorne unJMenuBar , este metodo se va a encargar de añadirme directamente la cantidad de Menus(JMenu) que necesite presentar.

public JMenuBar DameMenuBar() {
JMenuBar menuBar = new JMenuBar();
menuBar.setLayout(new BoxLayout(menuBar, BoxLayout.PAGE_AXIS));
menuBar.add(DameMenu("Menu 1"));//CREO LOS MENUS
menuBar.add(DameMenu("Menu 2"));
menuBar.add(DameMenu("Menu 3"));

return menuBar;
}

y con la ayuda de unBordeLayout.PAGE_AXIS(Componentes que están dispuestas horizontalmente de izquierda a derecha.),puedo darle laposiciónque necesito.

Como creo losMenúscon sus Items?
De la misma forma como creamos el MenuBar vamos a crear elMenú,con unmétodoque me retorne un JMenu y que merecibauna variable String, esto es para colocar el Titulo o nombre del Menu.

 public JMenu DameMenu(String title) {
JMenu m = new HorizontalMenu(title);//RESIVEN EL TITULO
m.add(new JMenuItem("SIGUEME EN TWITTER"));
m.add(new JMenuItem("SIGUEME EN FACEBOOK"));
m.add(new JMenuItem("SUSCRIBETE"));
/******************COLOCANDO SUBMENU*******************/
JMenu submenu = new HorizontalMenu("Submenu");
submenu.add(new JMenuItem("SUB ITEM 1"));
submenu.add(new JMenuItem("SUB ITEM 2"));
m.add(submenu);

return m;
}

con este metodo creo la cantidad de Menus y Items que necesito.
Ahora vamos a la Parte un poco compleja a lacreaciónde la claseHorizontalMenu, la cual es un JMenu y sumétodoconstructor me recibe la variable String(para añadir el titulo alMenú), obviamente ya que tengo unMenúhorizontal tengo que construir mi PopupMenu el cual me va a contener los Items de maneraHorizontal,esto lo hago con la ayuda del mismo Layout pero conLINE_AXIS(Si el contenedor es horizontal entonces los componentes se colocan horizontalmente).


        
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();
}


DESCARGAR




No hay comentarios:

Publicar un comentario