The error message is as follows...
java.io.InvalidClassException: javax.swing.JComponent; local class incompatible:
In general, NONE of the gui classes are serializable. Many AWT classes are inherently non-serializable (I've heard before that this is because, under the hood, they contain references to things like your local graphics memory; Sun could still have created a workaround, but apparently haven't). Nearly all Swing classes have for a while come with the comment (written in the docs for every class - have you READ the docs for the classes you are using?) "blah blah this is NOT serializable between different VM versions and/or platforms...this will be fixed in a later version of swing blah blah etc".
In general, just never try to serialize a Swing class. Although I do feel your pain - sometimes (though I very much doubt this is the case for you) you have to serialize gui classes. However, why on earth do you want to send a Button over the network? Just obey the M/V/C architecture (simple concept: separate your data (Model), display (View) and mouse-handling etc (Controller) - M,V,C. Read the Swing docs for info) and make a Model class representing the underlying data of your cards, and send that.
Have it DISPLAYED both ends by a separate class (a View, from the M/V/C terminology).
If this isn't clear, let me know and I'll try again; been awake almost 20 hours, and I'm not thinking too straight