ho un progetto in java assegnatomi dalla mia professoressa di OOP.
Il testo in questione è il seguente:
In sostanza ho più o meno fatto tutto. Non riesco però a implementare l'ultimo punto (premendo stop-> inviare un interrupt al thread1) e non capisco bene come far si che avviando il thread si avvi la rispettiva interfaccia grafica (anche se dal testo si evince che le 4 GUI sono tutte uguali). Io ho fatto una JFRAME chiamata GUI e poi 4 classi che hanno ognuna un metodo run che richiama la GUI principale. Potete per favore darmi dei consigli in merito?Implementare un applicativo per gestire una palestra:
Gli utenti della palestra sono oggetti così caratterizzati:
• attributi: codice_fiscale (String), nome (String), cognome (String), età (int), sesso (String),
mail (String), attività (String)
◦ l'attributo codice_fiscale è univoco per ciascun utente
◦ ogni attributo ha i propri setter e getter
Tali utenti sono memorizzati all'interno di un Database del seguente tipo:
• LinkedHashMap<String, Utente>
• La chiave d'inserimento del database è il codice_fiscale
L'applicativo da implementare consiste di un main che istanzia 4 thread di gestione (T1, T2, T3,
T4).
Ciascun Thread dispone di una propria GUI che:
• espone un'area (“Dati Personali”) all'interno della quale è possibile inserire tutti i dati
relativi a un'utente
• espone un bottone: “inserisci” che se premuto causa:
◦ la creazione di un nuovo oggetto Utente contenente tutti i campi inseriti in “Dati
Personali”
◦ l'inserimento di tale utente all'interno del Database (tale operazione di scrittura deve
essere implementata in maniera esclusiva rispetto agli altri Thread e in coerenza con
l'algoritmo dei lettori/scrittori)
◦ il lancio di un'eccezione se l'utente è già presente
• espone un bottone “Visualizza Database” che se premuto causa:
◦ La lettura di tutti gli utenti presenti nel Database (tale operazione di lettura deve essere
implementata in maniera esclusiva rispetto agli altri Thread e in coerenza con
l'algoritmo dei lettori/scrittori)
◦ il lancio di un'eccezione se non è presente alcun utente
• espone una TextArea: “DB” all'interno del quale vengono visualizzati in append gli utenti
letti dal Thread
• espone un bottone: Stop che se premuto causa:
◦ l'invio di un interrupt al primo Thread T1. Alla ricezione di tale interrupt, il thread:
▪ stampa a schermo: “bye”
▪ termina la propria esecuzione
