Diferență între revizuiri ale paginii „POO Lab Lucrarea 6”
De la WikiLabs
Jump to navigationJump to searchLinia 20: | Linia 20: | ||
* Folosind Java Swing, creați o interfață grafică, ca cea din figură, care să implementeze funcționalitatea clientului. Numiți clasa <code style="color: green">seriaf.poo.client.gui.GuiClient</code>. Este interzisă utilizarea unui ”Gui Creator” precum cel din Netbeans. | * Folosind Java Swing, creați o interfață grafică, ca cea din figură, care să implementeze funcționalitatea clientului. Numiți clasa <code style="color: green">seriaf.poo.client.gui.GuiClient</code>. Este interzisă utilizarea unui ”Gui Creator” precum cel din Netbeans. | ||
− | * Constructorul clasei <code style="color: green">GuiClient</code> trebuie să ia ca argument un obiect de tip <code style="color: green">Socket</code> deja conectat și să instanțieze un obiect de tip <code style="color: green">ClientPeer</code> a cărui referință se salvează într-un câmp. | + | * Constructorul clasei <code style="color: green">GuiClient</code> trebuie să ia ca argument un obiect de tip <code style="color: green">Socket</code> deja conectat și un nume inițial pentru expeditor (user) și să instanțieze un obiect de tip <code style="color: green">ClientPeer</code> a cărui referință se salvează într-un câmp. |
* Metoda <code style="color: green">main</code> din <code style="color: green">GuiClient</code> trebuie să instanțieze un obiect de tip <code style="color: green">Socket</code> și un obiect de tip <code style="color: green">GuiClient</code>. | * Metoda <code style="color: green">main</code> din <code style="color: green">GuiClient</code> trebuie să instanțieze un obiect de tip <code style="color: green">Socket</code> și un obiect de tip <code style="color: green">GuiClient</code>. | ||
− | * | + | * Numele inițial, hostname-ul și port-ul la care se conectează clientul sunt date ca argument la execuția programului (vezi https://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html). |
* Componentele grafice (butoane, textFields, etc.) trebuie să fie câmpuri în clasa <code style="color: green">GuiClient</code> și să aibă următoarele nume: | * Componentele grafice (butoane, textFields, etc.) trebuie să fie câmpuri în clasa <code style="color: green">GuiClient</code> și să aibă următoarele nume: | ||
** câmpul de editare pentru numele expeditorului - <code style="color: green">mSenderTextField</code> | ** câmpul de editare pentru numele expeditorului - <code style="color: green">mSenderTextField</code> | ||
Linia 33: | Linia 33: | ||
* Fereastra principală trebuie să nu poată fi redimensionată (trebuie dimensionată programatic astfel încât componentele să fie ușor de observat și utilizat). | * Fereastra principală trebuie să nu poată fi redimensionată (trebuie dimensionată programatic astfel încât componentele să fie ușor de observat și utilizat). | ||
* Comportamentul aplicației trebuie să fie identic cu cea a lui TextClient (să se poată folosi comenzile /q si /w). | * Comportamentul aplicației trebuie să fie identic cu cea a lui TextClient (să se poată folosi comenzile /q si /w). | ||
+ | * Adăugați clasei ClientPeer o metodă setter pentru câmpul <code style="color: green">mUsername</code> care se va apela când se dă click pe butonul de schimbare a numelui. |
Versiunea de la data 10 decembrie 2015 14:54
Noțiuni și cunoștințe necesare
- Paradigma Obiect-Orientare; Clase și obiecte
- Noțiuni despre Java
- Realizarea și execuția unui program Java
- Sintaxa limbajului Java; Structura lexicală a unui program
- Convenții de programare
- Noțiuni avansate de programare obiect-orientată
- Java Application Programming Interface (API)
- Stream-uri de Input/Output
- Tratarea excepțiilor
- Serializarea obiectelor
- Socket-uri de rețea
- Programare concurentă - fire de execuție (Threads)
- Graphical User Interface (GUI) - Java Swing și JavaFX
Cerințe
- Folosind Java Swing, creați o interfață grafică, ca cea din figură, care să implementeze funcționalitatea clientului. Numiți clasa
seriaf.poo.client.gui.GuiClient
. Este interzisă utilizarea unui ”Gui Creator” precum cel din Netbeans. - Constructorul clasei
GuiClient
trebuie să ia ca argument un obiect de tipSocket
deja conectat și un nume inițial pentru expeditor (user) și să instanțieze un obiect de tipClientPeer
a cărui referință se salvează într-un câmp. - Metoda
main
dinGuiClient
trebuie să instanțieze un obiect de tipSocket
și un obiect de tipGuiClient
. - Numele inițial, hostname-ul și port-ul la care se conectează clientul sunt date ca argument la execuția programului (vezi https://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html).
- Componentele grafice (butoane, textFields, etc.) trebuie să fie câmpuri în clasa
GuiClient
și să aibă următoarele nume:- câmpul de editare pentru numele expeditorului -
mSenderTextField
- butonul de schimbare a numelui -
mChangeSenderButton
- fereastra de afișare a mesajelor -
mMessageDisplayTextArea
- câmpul de editare pentru mesaj -
mMessageTextField
- butonul pentru trimiterea mesajului -
mSendMessageButton
- scroll pane-ul în care este plasată zona de afișare a mesajelor -
mMessageAreaScrollPane
- câmpul de editare pentru numele expeditorului -
- La apăsarea butonului X al ferestrei, aplicația trebuie să se oprească.
- Fereastra principală trebuie să nu poată fi redimensionată (trebuie dimensionată programatic astfel încât componentele să fie ușor de observat și utilizat).
- Comportamentul aplicației trebuie să fie identic cu cea a lui TextClient (să se poată folosi comenzile /q si /w).
- Adăugați clasei ClientPeer o metodă setter pentru câmpul
mUsername
care se va apela când se dă click pe butonul de schimbare a numelui.