Appendix A. Final Code Kitchen
Final BeatBox client program
Most of this code is the same as the code from the CodeKitchens in the previous chapters, so we don’t annotate the whole thing again. The new parts include:
GUI - two new components are added for the text area that displays incoming messages (actually a scrolling list) and the text field.
NETWORKING - just like the SimpleChatClient in this chapter, the BeatBox now connects to the server and gets an input and output stream.
THREADS - again, just like the SimpleChatClient, we start a ‘reader’ class that keeps looking for incoming messages from the server. But instead of just text, the messages coming in include TWO objects: the String message and the serialized ArrayList (the thing that holds the state of all the checkboxes.)