Beskrivning av gesällprov RMI Chat Mikael Rydmark rydmark@kth.se Mikael Rydmark 1(8) 12-06-06
Innehållsförteckning Inledning...3 Server...3 Klient... 3 Ansluta till servern...3 Huvudchat...4 Privat kommunikation...5 Byta användarnamn... 5 Inställningar... 6 Om Applikationen...8 Avslutning...8 Mikael Rydmark 2(8) 12-06-06
Inledning Jag har skapat en chat-server och klient som bygger på RMI-teknik. Med hjälp av RMIteknik så kan servern använda objekt som körs av klienten och vice versa. Efter att man har startat servern så kan man sedan ansluta med klienter som kan prata med varandra via servern. Man startar servern och klienten genom att köra respektive JAR-fil. Server Servern är ett litet program utan grafiskt gränssnitt vars uppgift är att hålla koll på alla anslutna klienter och sköta kommunikationen mellan dem. När man startar servern så startar den på den lokala maskinen med namnet rmichat. Om man skickar med ett argument till JAR-filen kan man välja ett annat namn. Klient Klienten däremot har ett användargränssnitt och är mer komplex än vad servern är. Man kan exempelvis själv ställa in hur man vill att användargränssnittet ska se ut med hjälp av en inställningspanel. Ansluta till servern När man startar klienten får man upp ett fönster där man får välja användarnamn samt vilken server man vill ansluta till (se Bild 1). Bild 1: Ansluta till servern Mikael Rydmark 3(8) 12-06-06
Huvudchat När man har anslutit till server får man tillgång till huvudchatten (se Bild 2). Detta är kärnan i applikationen. Här kan alla klienter som är anslutna till serven kommunicera med varandra. Förutom meddelanden från klienterna så visas även information när klienter ansluter/lämnar/byter användarnamn. Det finns också en meny uppe till vänster. Bild 2: Huvudchat Fönstret har en lista med alla anslutna användare till höger. Om man dubbelklickar på en användares namn i listan får man upp ett privat fönster där man kan kommunicera enskilt med den användaren. Bild 3: Tabbar Man navigerar mellan olika chatfönster genom att använda tabbarna upptill i fönstret (se Bild 3). Fönster dyker även upp automatisk när någon skriver till en klient. Ett inaktivt fönster som har information som användaren inte har sett ännu får en röd markering i tabbpanelen. Mikael Rydmark 4(8) 12-06-06
Privat kommunikation När man kommunicerar privat med någon ser fönstret ut som i Bild 4. Det som skiljer mot huvudfönstret är att man här inte har någon lista av användare. Bild 4: Privat chatfönster Byta användarnamn Bild 6: Byta användarnamn En användare kan byta namn om han/hon vill. Detta gör användaren genom att använda menyn. Mikael Rydmark 5(8) 12-06-06
Inställningar Från menyn kan man nå ett fönster för att ställa in hur man vill att gränssnittet ska se ut. Där kan man välja färg, storlek, stil och typsnitt för ett antal olika typer av meddelanden (se bild 7). Bild 7: Inställningar Man kan också ställa in programmets look and feel (detta kräver dock en omstart av applikationen, se bild 8) och ställa in färger för applikationens olika fönster samt ställa in huruvida man vill att en tidstämpel ska skrivas ut i samband med att meddelanden skrivs ut. Bild 8: Byta "Look and feel" Mikael Rydmark 6(8) 12-06-06
När man startar klienten så läser den in inställningarna från en så kallad properties -fil om det finns en sådan, annars används defaultinställningar. När programmet avslutas skrivs de aktuella inställningarna till properties -filen. Bild 8: Olika utseendeval Bild 8 visar ett ett antal olika utseenden på programmet konfigurerat med hjälp av inställningspanelen. Mikael Rydmark 7(8) 12-06-06
Om Applikationen Från menyn kan man också få fram ett fönster som beskriver programmet. Bild 8: Om applikationen Avslutning Det har varit kul att utveckla i Java igen då jag numera mest håller på med C# och.net. Jag har den här gången använt mig av IntelliJ IDEA för att bygga applikationen och mitt intryck är att det är strået vassare än Eclipse. Det har varit spännande att lära sig om RMI-teknik och försöka bygga något som använder det var kul. Att bygga gränssnitt i Java är, i min åsikt, ganska bökigt men det känns som man blir aningen bättre på det för varje gång vilket är kul. Mikael Rydmark 8(8) 12-06-06