Pagina de start a forumului Informatica
 FAQ  •  Cautare  •  Membri  •  Grupuri   •  Inregistrare  •  Profil  •  Mesaje private  •  Autentificare
Subiectul urmator
Subiectul anterior
Creaza un subiect nou   Raspunde la subiect  Pagina de start a forumului Informatica » Despre limbajele de programare
Autor Mesaj
Admin
Administrator
Administrator


Data inscrierii: 07/Dec/2013
Mesaje: 1103

MesajTrimis: 12/12/2013 21:23 Raspunde cu citat (quote) Back to top

Suprafeţele de afişare ale unei componente grafice sunt extensii ale clasei Container. Pe urmă cum am văzut, pentru implementarea unui applet s-au întrebuințat suprafeţele de afişare Applet şi Panel. O aplicaţie intependentă are însă nevoie de propriile ferestre pe care să facă afişarea componentelor grafice. Pentru expansiunea aplicaţiilor care folosesc grafică se vor folosi clasele Window, Frame, Dialog.

Container
Panel - Window
Applet | Frame - Dialog

Clasa Window
Clasa Window este rar utilizată în mod direct. Ea permite crearea unor ferestre top-level care nu au chenar şi nici bară de meniuri. Pentru a crea ferestre mai complexe se utilizează clasele Frame şi Dialog.
Constructor
Window (Frame)
Constructs a new Window initialized to an invisible state.
Metode
addNotify () Creates the Window's peer.
dispose()
{terge o fereastră de care nu mai este nevoie. Trebuie apelată pentru a elibera resursele
getToolkit() Returns the toolkit of this frame.
getWarningString() Gets the warning string for this window.
pack()
Redimensionează fereastra specifică corespunzător dimensiunilor componentelor sale
show()
Afişează fereastra specificată. In mod implicit, o fereastră nou creată nu este vizibilă.
toBack()
Fereastra curentă este trimisă în spatele celorlate ferestre.
toFront()
Afişează fereastra specificată deasupra celorlalte ferestre.

Clasa Frame
Este o subclasă a clasei Window. Creează ferestre independente şi funcţionale, conţinând bare de meniuri.
Variabile
CROSSHAIR_CURSOR
DEFAULT_CURSOR
E_RESIZE_CURSOR
HAND_CURSOR
MOVE_CURSOR
NE_RESIZE_CURSOR
NW_RESIZE_CURSOR
N_RESIZE_CURSOR
SE_RESIZE_CURSOR
SW_RESIZE_CURSOR
S_RESIZE_CURSOR
TEXT_CURSOR
WAIT_CURSOR
W_RESIZE_CURSOR
Constructori
Frame () Constructs a new Frame that is initially invisible.
Frame(String) Constructs a new, initially invisible Frame with the specified title.

Metode
addNotify () Creates the Frame's peer.
dispose() Disposes of the Frame.
getCursorType() Return the cursor type
getIconImage() Returns the icon image for this Frame.
getMenuBar() Gets the menu bar for this Frame.
getTitle() Gets the title of the Frame.
isResizable() Returns true if the user can resize the Frame.
paramString() Returns the parameter String of this Frame.
remove(MenuComponent) Removes the specified menu bar from this Frame.
setCursor(int) Set the cursor image to a predefined cursor.
setIconImage(Image) Sets the image to display when this Frame is iconized.
setMenuBar(MenuBar)Sets the menubar for this Frame to the specified menubar.
setResizable(boolean) Sets the resizable flag.
setTitle(String) Sets the title for this Frame to the specified title.

Exemplu - crearea şi afişarea unei clase
import java.awt.*;
public class TestWindow {
public static void main(String args[]) {
Frame f = new Frame("Test Frame");
f.show();
}
}
Gestionarul implicit al clasei Window este BorderLayout. Din acest motiv, în timpul în care fereastra este creată dar nici o componentă grafică nu este pusă pe suprafaţa ei, suprafaţa de afişare a feretrei va fi nulă.
Acelaşi efect îl vom obţine dacă o redimenionăm şi apelăm apoi metoda pack() care determină dimeniunea suprafeţei de afişare în funcţie de componentele grafice afişate pe ea.
Se observă de asemenea că butoanele de maximizare, minimizare şi închidere ale ferestrei nu sunt funcţionale. Aceasta deoarece, similar celorlalte butoane, ele generează nişte evenimente care însă nu sunt recepţionate de obiectul care constituie fereastra deoarece acesta nu s-a înregistrat ca ascultător. Interceptarea evenimentelor se face prin implementarea interfeţei WindowListener şi prin adăugarea în lista ascultătorilor ferestrei chiar a obiectului care implementează fereastra.

import java.awt.*;
import java.awt.event.*;
class Cadru extends Frame implements WindowListener {
public Cadru(String titlu) {
super(titlu);
this.addWindowListener(this);
}
//metodele interfetei WindowListener
public void windowOpened(WindowEvent e) {}
public void windowClosing(WindowEvent e) {
System.exit(0);
}
public void windowClosed(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
}

public class TestWindow {
public static void main(String args[]) {
Cadru w_main = new Cadru("Test Frame");
Button cb_ok = new Button(“OK”);
w_main.add(cb_ok);
w_main.pack();
w_main.show();

}
}

Ferestre de dialog - Clasa Dialog
Toate mediile grafice întinde şi un tip singular de ferestre menite preluării datelor de la utilizator. Acestea se numesc ferestre de dialog sau casete de dialog şi sunt de două soiuri :
• modale : care blochează accesul la fereastra părinte - de exemplu, ferestre de introducere a unor date, de alegere a unui fişier în vederea deschideriii, de selectare a unei opţiuni, mesaje de avertizare, etc
• nemodale : care nu blochează debitul de intrare înspre fereastra părinte - de exemplu, ferestrele de căutare a unui cuvânt într-un fişier.
Crearea unor astfel de ferestre se realizează prin intermediul clasei Dialog.
Clasa Dialog
Constructori
Dialog (Frame w_parent, boolean modal)
Dialog(Frame w_parent, String titlu, boolean modal)
Construieşte o casetă de dialog iniţial invizibilă, cuprinzând ca părinte fereastra w_parent. Valoarea logică <modal> specifică dacă fereastra de dialog este modală sau nu.

Metode
addNotify () Creates the frame's peer.
getTitle() Gets the title of the Dialog.
isModal() Returns true if the Dialog is modal.
isResizable() Returns true if the user can resize the frame.
paramString() Returns the parameter String of this Dialog.
setResizable(boolean) Sets the resizable flag.
setTitle(String) Sets the title of the Dialog.

Exemplu
Dialog d = new Dialog(w_main, "Fereastra dialog", true);
Panel butoane = new Panel();
butoane.setLayout(new FlowLayout());
butoane.add(new Button("DA"));
butoane.add(new Button("NU"));
d.add("South", butoane);
d.add("Center", new Label("Sigur doriti sa faceti asta?"));
d.setSize(new Dimension(200,100));
d.show();

Crearea de dialoguri este relativ simplă. Mai complicat este însă modul în care se implementează comunicarea între fereastra de dialog şi aplicaţie, pentru ca aceasta din urmă să poată folosi datele introduse (sau opţiunea specificată) în caseta de dialog. Se află două abordări generale :
• obiectul care reprezintă dialogul poate să capteze evenimentele de la butoanele ferestrei şi de la controalele de pe suprafaţa sa şi să să seteze valorile unor parametri ai aplicaţiei în momentul în care dialogul este încheiat sau
• obiectul care alcătuie dialogul (fereastra părinte) să se înregistreze ca ascultător al evenimentelor de la butoanele care determină încheierea dialogului, iar obiectul dialog să ofere metode publice prin care datele introduse să fie preluate din exterior.

Obs: A doua metodă este mai uzuală.

Clasa FileDialog
Pachetul java.awt pune la dispoziţie şi un tip de fereastră de dialog folosit pentru încărcarea / salvarea fişierelor. Clasa FileDialog are un comportament comun dialogurilor de acest tip de pe majoritatea sistemelor, dar forma sa specifică în care va fi afişată este specifică platformei pe care rulează aplicaţia.
Variabile
LOAD The file load variable.
SAVE The file save variable.

Constructor
FileDialog (Frame, String) Creates a file dialog for loading a file.
FileDialog(Frame, String, int)Creates a file dialog with the specified title and mode.

Metode
addNotify () Creates the frame's peer.
getDirectory() Gets the directory of the Dialog.
getFile() Gets the file of the Dialog.
getFilenameFilter() Gets the filter.
getMode() Gets the mode of the file dialog.
paramString() Returns the parameter String of this file dialog.
setDirectory(String)
Set the directory of the Dialog to the specified directory.
setFile(String)
Sets the file for this dialog to the specified file.
setFilenameFilter(FilenameFilter)
Sets the filter for this dialog to the specified filter.

Exemple:
FileDialog f1 = new FileDialog(w_main, “Alegere fisier”,
FileDialog.LOAD); //dialog pentru incarcarea unui fisier
FileDialog f2 = new FileDialog(w_main, “Salvare fisier”,
FileDialog.SAVE); //dialog pentru salvarea unui fisier
f1.setDirectory(“./”); //directorul curent
f2.setDirectory(“/”); //directorul radacina
f1.setFile(“*.java”);
f2.setFile(”test.html”);//fisierul care apare initial

f1.setFileNameFilter(new JavaFilter());
class JavaFilter implements FilenameFilter {
public boolean accept(File dir, String numeFis) {
return (numeFis.endsWith(“.java”));
}
}

Obs: La crearea unui obiect FileDialog acesta nu este implicit vizibil. Dacă afişarea sa se face cu show() caseta de dialog va fi modală. Dacă afişarea se face cu setVisible(true) va fi nemodală. Ulterior selectarea unui fişier ea va fi făcută automat invizibilă.
--------------------------------------------------------------------------------
Vezi profilul utilizatorului Trimite mesaj privat
Afiseaza mesajele pentru a le previzualiza:   
Creaza un subiect nou   Raspunde la subiect

Subiectul urmator
Subiectul anterior
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum


Powered by phpBB © 2001, 2002 phpBB Group