Skip to content
/ Task_4 Public
forked from OOP-ADF/Task_4

Exercise on Inner Class and Threading

Notifications You must be signed in to change notification settings

gebgb/Task_4

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task_4 2017

Exercise on Inner Class and Threading

Buatlah program java untuk chatting antar computer sebagai berikut

Package javaChat


Package berisi kelas-kelas Socket dan Network Programming [disediakan]

Package consoleApp


Package berisi kelas-kelas model

ConnectionThread.java

Buatlah class ConnectionThread.java sebagai berikut

  • extends Thread
  • import library berikut
    01
  • buatlah class sesuai class diagram berikut
    02

Constructor

  • Constructor throws IOException
  • Constructor mengeset attribut client dan menginstansiasi objek Connection dengan input client
    03

method run()

  • Merupakan method yang dijalankan saat thread diaktifkan
  • Thread akan aktif setiap ada Client baru yang terhubung ke Server
  • Thread akan berhenti ketika Client mengirimkan pesan "quit"
  • lakukan proses berikut dalam blok try-catch
  • jalankan proses chatting dengan memanggil method startChat(String) dari objek connection
    04
  • tampilkan informasi Client yang terhubung dengan method getClientInformation dari Objek connection
    05
  • lakukan proses loop membaca inputan text dari client dengan memanggil method readStream() dari objek connection selama input readStream masih membaca dan input String bukanlah "quit"
  • tampilkan pesan yang diterima dari client, dan kirimkan (broadcast) pesat tersebut ke client yang lain menggunakan method sendToAll() dari objek connection
    06
  • tampilkan pesan kepada semua client jika ada client yang keluar dari chat room, kemudian putuskan koneksi terhadap client tsb dengan memanggil method disconnect() dari object connection
    07
  • tambahkan pesan di blok catch untuk menampilkan pesan error

ConsoleApplication.java

Buatlah class ConsoleApplication.java sebagai berikut

  • buatlah class sesuai class diagram berikut
    08
  • class ReadInput dan WriteOutput merupakan Inner Class

inner class ReadInput

  • extends Thread
  • method run()
  • lakukan proses berikut dalam blok try-catch
  • Thread akan membaca input keyboard dari client dengan memanggil method inputString()
  • Mengirimkan hasil input keyboard ke server melalui method writeStream() selama input dari client bukanlah kata "quit"
    09
  • tambahkan pesan di blok catch untuk menampilkan pesan error

inner class WriteOutput

  • extends Thread
  • method run()
  • lakukan proses berikut dalam blok try-catch
  • Thread akan menerima pesan yang dikirimkan dari server melalui method readStream()
  • Menampilkan ke layar selama pesan dari server masih ada (bukan null)
    10
  • tambahkan pesan di blok catch untuk menampilkan pesan error

method startChat()

  • lakukan proses berikut dalam blok try-catch
  • Instansiasi objek ClientConnection
    11
  • Minta input alamat ip Server menggunakan method inputString()
  • Koneksikan ip client ke server dengan memanggil method connect(ip)
    12
  • Instansiasi dan jalankan Thread ReadInput dan WriteInput
    13
  • tambahkan pesan di blok catch untuk menampilkan pesan error

Package chatGUI


Package berisi kelas view GUI dan controller

ChatView.java

Buatlah class JFrame ChatView.java dengan tampilan sebagai berikut
16

  • terdapat sebuah text area (txAreaChat)
  • set editable text area = false (uncheck editable)
  • tambahkan text "Input Server IP Address : " pada text area
    17
  • terdapat sebuah text field (txFieldChat)
  • tambahkan method getTxFieldChat() yang mengembalikan objek text field txFieldChat
  • tambahkan method getStringChat() yang mengembalikan String dari text field txFieldChat
  • tambahkan method setTxFieldChat(String) yang mengeset String pada text field txFieldChat
  • tambahkan method setTxAreaChat(String) yang menambahkan string pada baris baru pada text area txAreaChat
    18
  • import java.awt.event.ActionListener;
  • tambahkan method addListener(ActionListener e)
  • tambahkan add listener dengan memanggil method addActionListener pada text field txfieldChat
    19

ChatController.java

Buatlah class JChatController.java sebagai berikut

  • buatlah class sesuai class diagram berikut
    20
  • class WriteOutput merupakan Inner Class
  • import java.awt.event.ActionListener;
  • kelas implements ActionListener
  • implementasikan method actionPerformed(ActionEvent ae)

Constructor ChatController

  • Constructor menginstansiasi GUI view
  • set visible view = true
  • set lisener view dengan controller this
  • set client = null
    21

inner class WriteOutput

  • extends Thread
  • method run()
  • lakukan proses berikut dalam blok try-catch
  • Thread akan menerima pesan yang dikirimkan dari server melalui method readStream()
  • Menampilkan pesan ke text area view selama pesan dari server masih ada (bukan null) menggunakan method setTxAreaChat
    23
  • tambahkan pesan di blok catch untuk menampilkan pesan error

method actionPerformed(ActionEvent ae)

  • get Object source action event
    22
  • cek source action event
  • jika event berasal dari text field (tekan tombol enter di text field), cek apakah client sudah terhubung
  • jika client masih null
  • lakukan proses berikut dalam blok try-catch
  • instansiasi ClientConnection baru
  • Terima string ip dari user dengan memanggil method getStringChat dari objek view
    24
  • Instansiasi dan jalankan objek WriteOutput
    25
  • tambahkan pesan di blok catch untuk menampilkan pesan error
  • jika client sudah terbentuk (koneksi sudah terbentuk)
  • terima input dari view menggunakan method getStringChat()
  • kirimkan hasil input String ke server melalui method writeStream()
    26
  • hapus isi dari text field pada view menggunakan method setTxFieldChat
    27

Package driver


Package berisi kelas-kelas model

DriverServer.java

Buatlah class DriverServer.java sebagai berikut

  • kelas memiliki main method (psvm)
  • lakukan proses berikut dalam blok try-catch di dalam main method
  • Instansiasi objek ServerConnection dan tampilkan informasi server dengan memanggil method getServerInformation()
    14
  • Lakukan perulangan untuk menjalankan ConnectionThread setiap server menerima Client baru
  • Jalankan thread connection
    15
  • tambahkan pesan di blok catch untuk menampilkan pesan error
  • Jalankan kelas DriverServer

DriverClientConsole.java

Buatlah class DriverClient.java sebagai berikut

  • kelas memiliki main method (psvm)
  • instansiasi objek ConsoleApplication
  • panggil method startChat dari objek ConsoleApplication
  • Jalankan kelas DriverClientConsole
  • hubungkan dengan IP server
  • cobalah aplikasi chat console yang telah dibuat

DriverClientGui.java

Buatlah class DriverClientGui.java sebagai berikut

  • kelas memiliki main method (psvm)
  • instansiasi objek ChatController
  • Jalankan kelas DriverClientGui
  • hubungkan dengan IP server
  • cobalah aplikasi chat Gui yang telah dibuat

About

Exercise on Inner Class and Threading

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%