Omet navegació

5.- Menús

Per a poder col·locar menús ens els programes gràfic de Java utilitzarem 3 classes de Swing: JMenuBar, JMenu i JMenuItem

  • JMenuBar : barra de menú. Serà el menú principal, el que es col·loca dalt de tot.
  • JMenu: cada element del menú principal, és a dir, els que es despleguen cap avall.
  • JMenuItem: cada element de menú. Els assignarem una acció.

També podrem posar barres separadores (JSeparator).

I si volem un submenú que es desplegue cap a la dreta, col·loquem un JMenu dins d'un JMenu.

Per a incloure un element dins d'un altre, ho farem per un mètode del pare, add, especificant com a paràmetre el fill. El menú principal l'especificarem per un mètode de JFrame, setJMenuBar.

Els JMenuItem són els que poden realitzar una acció, i ho farem registrant-los igual que els botons.

Mirem directament un exemple, on col·loquem un poc de tot.

class Finestra : JFrame() {
	val menu_p = JMenuBar()

	val menu_1 = JMenu("Menu 1")
	val menu_2 = JMenu("Menu 2")
	val menu_3 = JMenu("Menu 3")

	val menu_11 = JMenuItem("Menu 11")
	val menu_12 = JMenu("Menu 12")
	val menu_13 = JMenuItem("Menu 13")
	val menu_21 = JMenuItem("Menu 21")
	val menu_22 = JMenuItem("Menu 22")
	val menu_e = JMenuItem("Eixir")
	val menu_121 = JMenuItem("Menu 121")
	val menu_122 = JMenuItem("Menu 122 (eixir)")

	init {
		defaultCloseOperation = JFrame.EXIT_ON_CLOSE
		setTitle("Exemple de Menús")
		setSize(400, 300)
		setJMenuBar(menu_p)
		menu_p.add(menu_1)
		menu_p.add(menu_2)
		menu_p.add(menu_3)

		menu_1.add(menu_11)
		menu_1.add(menu_12)
		menu_1.add(JSeparator())
		menu_1.add(menu_13)

		menu_12.add(menu_121)
		menu_12.add(menu_122)

		menu_2.add(menu_21)
		menu_2.add(menu_22)

		menu_3.add(menu_e)


		menu_122.addActionListener { eixir() }
		menu_e.addActionListener { eixir() }

	}

	fun eixir(){
		System.exit(0)
	}
}

El resultat serà aquest (despleguem el de més a l'esquerra per veure la barra separadora i el submenú)