© 2013 All rights reserved.
6

Java a základy GUI #4

V několika minulých dílech jsme si nastínily základy vytváření grafického rozhraní k naším aplikacím v Javě. V tomto, v řadě již čtvrtém dílem se podíváme na problematiku Menu.

U složitějších aplikací máme potřebu nabídnou uživateli program členít. Vzniká potřeba dávat uživateli možnosti, které by na ovládacích panelích jenom zbytečně zabírali místo. V takovém případě můžeme jednoduše vytvořit menu programu, ve kterém členíme uživatelské volby a nastavení.

Pro vytváření menu budeme používat knihovnu Swing, konkrétně budeme potřebovat komponenty JMenu, JMenuBar, JMenuItem.

JMenuBar

Pro celé grafické rozhraní bude potřeba nadědit JFrame, která je taktéž v javax.swing, a ze které budeme vycházet.

První komponenta, kterou vytvoříme bude JMenuBar. Tato komponenta sama o sobě žádné menu nevytváří, ale vytvoří pouze MenuBar, do kterého budeme samotné menu vkládat.
Pro umístění slouží funkce setJMenuBar:

Tímto nám vznikde jednoduché okno, které bude prázdné. Maximálně můžete pororovat nahoře okna slabý pruh, který vytvořil MenuBar.

JMenu

Pokud máme vytvořený MenuBar, můžeme do něj začít vytvářet jednotlivé položky menu. Jako první musíme vytvořit hlavní položky, které budou dále rozevíratelné po kliknutí.

Toto je ve Swingu opět velice jednoduché, a slouží nám k tomu komponenta JMenu, kterou přídáváme do MenuBaru. Jako parametr je právě zobrazovaný řetězec typu String:

Takto jsme vytvořili dvě položky menu, které jsou umístěny v našem MenuBaru a jsou zatím nefunkční.

Všiměte si že položky jsou uspořádány přesně v takovém pořadí v jakém jsme je přidali a není tudíž problém je přeházet.

JMenuItem

Konečně se dostáváme k samotným položkám menu, které vytvoříme poslední komponentou – JMenuItem.

Syntaxe je obdobná jako u JMenu, jenom s tím rozdílem, že JMenuItem přídáváme do JMenu a ne do JMenuBaru. Parametr je opět hodnota String, která se bude v menu zobrazovat:

Pro každý JMenu jsme vytvořili dvě položky, které jsou pod tímto JMenu umístěny a přístupné po kliknutí.

K takto vytvořeným JmenuItems můžeme přistupovat jako ke všem ostatním grafickým komponentům. Můžeme k nim například jednoduše přidávat události:

Závěrem

Při vytváření menu je důležíté si zapamatovat posloupnost komponent, což je snad patrné i z logického hlediska.

Nejprve vytvoříme MenuBar(JMenuBar), do kterého přidáme položky Menu (JMenu), do nihž nakonec umístíme samotné MenuItems (JmenuItem).

Celé okno, které jsme si dnes vytvořili vypadá následnovně:

V příštím díle si řekneme něco i InternalFrames.

 

Mohlo by vás zajímat:

Java a základy GUI#1
Java a základy GUI#2
Java a základy GUI#3

Comments are closed for this page

Swing je velmi kvalitni a v Java lze obecne psat nejvice abstraktni kod, ale co se mi nelibi je, ze Swing obsahuje ActionListener, misto aby to mel pod nazvem EventListener, cimz mi pripomina ponekud mne iritujici FLASH.

Co se mi nelibi na clanku je povazovani Swing za synonymum pro GUI, coz je velmi kontroverzni. Navrhoval bych zmenit nadpisy na Zaklady JAVA: Swing, cimz se zvysi pocet lidi prichazejicich sem z vyhledavacu a snizi pocet lidi, kteri hledaji neco jineho, nez Swing.

Nesouhlasim s předchozim komentářem… Vždyť to jsou základy GUI a ne Swing…

Když neni Swing GUI.. tak co je potom GUI v javě .. ptám se toho co psal jak se mu nelíbí nadpis

Díky za fajn clanky. Jedine, co bych vytkla, je gramatika, ktera mi obcas rve oci 🙂
S pozdravem
F.

Souhlasím s tebou. Swing je jednoznačně GUI. Java obsahuje dvě GUI a to AWT a JFC Swing, který z AWT vychází a využívá ho.

Ondra

Přesně tak. Každý začátečník (a pro ně je tato stránka dělaná) nikdy nebude hledat Swing protože ani pořádně neví co to je ale GUI je přesně vystihující.

About
Hi, i am programmer from the Czech Republic. I love web development (Ruby, Ruby on Rails, PHP, Nette) and iOS development (Objective-C, Cocoa).
To cooperate, here is my phone:
+420 608 836