Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Meniuri

Informatica


Meniuri

Spre deosebire de celelate obiecte grafice, care deriv\ din clasa Component, meniurile deriv\ din clasa MenuComponent. Aceast\ excep]ie este f\cut\ deoarece multe platforme grafice limiteaz\ capabilit\]ile unui meniu.



In Java AWT meniurile sunt reprezentate ca un instan]e al clasei MenuBar. Toate meniurile sunt grupate într-un singur obiect MenuBar, care este unic pentru o fereastr\ (Frame). Meniurile vizibile permanent nu pot fi ad\ugate decât la 24124t1914y ferestre derivate din clasa Frame.

Pentru a putea con]ine un meniu, o component\ trebuie s\ implementeze interfa]a MenuContainer. Clasa Frame implementeaz\ aceast\ interfa]\.

Cel mai simplu element al unui meniu este un MenuItem, care este de fapt o op]iune care, odat\ selectat\, nu mai afi[eaz\ un submeniu.


A[adar un MenuBar con]ine obiecte de tip Menu, care la rândul lor pot con]ine obiecte de tip MenuItem CheckBoxMenuItem, dar [i alte obiecet de tip Menu.

Clasa MenuComponent

Este o clas\ abstract\, din care sunt extinse toate celelalte clase folosite pentru lucrul cu meniuri.

Metode:

getFont () Gets the font used for this MenuItem.

getParent() Returns the parent container.

setFont(Font) Sets the font to be used for this MenuItem to the specified font.

toString() Returns the String representation of this MenuComponent's values.

Clasa MenuBar

Permite crearea barelor de meniuri asociate unei ferestre cadru (Frame). Aceast\ clas\ adapteaz\ conceptul de bar\ de meniuri la platforma pe care lucra]i. Pentru a lega bara de meniuri la o anumit\ fereastr\ trebuie apelat\ metoda setMenuBar() din clasa Frame

Constructor

MenuBar ()

Metode

add (Menu)

Adaug\ un meniu la o bar\ de meniuri

countMenus()

Returneaz\ num\rul de meniuri pe care le con]ine bara respectiv\

getHelpMenu()

Permite accesul la meniul help al unei bare de meniuri

getMenu(int)

Gets the specified menu.

remove(int)

Utilizarea meniurilor

La alegerea unei op]iuni dintr-un meniu se genereaz\ un eveniment. Acesta este de tip ActionEvent [i comanda este reprezentat\ de numele op]iunii alese. A[adar pentru a activa op]iunile unui meniu trebuie implementat un obiect receptor care s\ implementeze interfa]a ActionListener [i care în metoda actionPerformed s\ specifice codul ce trebuie executat la alegerea unei op]iuni.

Fiec\rui meniu în putem asocia un obiect receptor diferit, ceea ce u[ureaz\ munca în cazul în care ierarhia de meniuri este complex\. Pentru a realiza leg\tura între obiectul meniu [i obiectul receptor trebuie s\ ad\ug\m receptorul în lista de ascult\tori a meniului respectiv prin commanda:

nume_meniu.addActionListener(nume_receptor)

A[adar tratarea op]iunilor dintr-un meniu este asem\n\toare cu tratarea butoanelor, ceea ce face posibil ca unui buton de pe suprafa]a de afi[are s\ îi corespund\ o op]iune într-un meniu, ambele cu acela[i nume, tratarea evenimentului corespunz\tor ap\s\rii butonului, sau alegerii op]iunii f\cându-se o singur\ dat\.

Exemplu - utilizarea meniurilor

import java.awt.*;

import java.awt.event.*;

public class TestMenu2

class Fereastra extends Frame implements WindowListener, ActionListener

//metodele interfetei WindowListener

public void windowOpened(WindowEvent e)

public void windowClosing(WindowEvent e)

public void windowClosed(WindowEvent e)

public void windowDeiconified(WindowEvent e)

public void windowIconified(WindowEvent e)

public void windowActivated(WindowEvent e)

public void windowDeactivated(WindowEvent e)

//metoda interfetei ActionListener

public void actionPerformed(ActionEvent e)

Un caz special îl constituie op]iunile de tip CheckboxMenuItem. Obiectele de acest tip se g\sesc într-o categorie comun\ cu List, Choice, CheckBox, implementeaz\ o interfa]\ comun\ ItemSelectable [i toate genereaz\ evenimente de tip ItemEvent

Din aceast\ cauz\ ac]ionarea unei op]iuni de tip CheckboxMenuItem nu va determina generarea unui eveniment de tip ActionEvent de c\tre meniul din care face parte, ci va genera un eveniment ItemEvent chiar de c\tre op]iune. Pentru a intercepta un asemenea eveniment avem nevoie de un obiect receptor care s\ implementeze interfa]a ItemListener [i s\ specifice în metoda acesteia itemStateChanged codul ce trebuie executat la validarea/invalidarea op]iunii din meniu. De asemenea receptorul trebuie înregistrat cu addItemListener.

Exemplu :

Menu stil = new Menu("Style");

CheckboxMenuItem stil_bold = new CheckboxMenuItem("Bold"));

stil.add(stil_bold);

stil_bold.addItemListener(f);

class Fereastra extends Frame

implements WindowListener, ActionListener, ItemListener

Tipul de opera]ie selectare / deselectare este codificat de câmpurile statice ItemEvent.SELECTED [i ItemEvent.DESELECTED

Meniuri de context (popup)

Au fost introduse începând cu AWT 1.1 [i sunt implementate prin intermediul clasei PopupMenu.

Crearea:

pm = new PopupMenu("Popup");

Ad\ugarea de noi op]iuni :

pm.add(new MenuItem("Cut"));

pm.add(new MenuItem("Copy"));

pm.addSeparator();

Afi[area se face prin :

pm.show(Component c, int x, int y)

[i este de obicei rezultatul ap\s\rii unui buton al mouse-ului, pentru a avea acces rapid la meniu.

Meniurile de context nu se adaug\ la un alt meniu (bar\ sau sub-meniu) ci se ata[eaz\ la o component\ prin metoda add()

fereastra.add(pm);

Utilizarea este îns\ similar\ meniurilor orizontale

Acceleratori

Incepând cu Java AWT 1.1 este posibil\ specificarea unor combina]ii de taste (acceleratori - shortcuts) pentru accesarea direct\, prin intermediul tastaturii, a op]iunilor dintr-un meniu. Astfel, oric\rui obiect de tip MenuItem îi poate fi asociat un obiect de tip accelerator, definit prin intermediul clasei MenuShortcut. Singurele combina]ii de taste care pot juca rolul acceleratoriloe sunt :

<Ctrl> + <Tasta> sau

<Ctrl> + <Shift> + <Tasta>

Clasa MenuShortcut

Constructori

public MenuShortcut( int Tasta )

Construieste un accelerator de tipul <Ctrl>+<Tasta>

public MenuShortcut( int Tasta, boolean foloseste_shift )

Parametrul foloseste_shift permite construirea unui accelerator de tipul <Ctrl>+<Shift>+<Tasta> (daca are valoarea true)

Metode

int getKey( )

Returneaza codul tastei folosite la construirea acceleratorului

Atribuirea unui accelerator la o op]iune a unui meniu poate fi realizat\ prin:

constructorul MenuItem în forma

MenuItem(String eticheta, MenuShortcut accelerator)

Ex: MenuItem m_optiune;

m_optiune = new MenuItem("Open", new MenuShortcut(VK_O))

metoda setShortcut(MenuShortcut accelerator) a clasei MenuItem

Ex:  ctrl_o = new MenuShortcut(VK_O);

MenuItem m_optiune = new MenuItem("Open", ctrl_o)


Document Info


Accesari: 2663
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )