Bean bowl lets you interact directly with Java objects through a swing interface. Start it by running scripts/beanbowl.bat (for windows). You can also use it as Java framework for generating user interfaces based on Java reflection.
When the application is running go to the "Full class name" field and type the name of a class that you want to examine, for example java.util.Random. Then press "Examine...". Now you are presented with a list of the available constructors in this class (among other things). Press one of the "Create" buttons. It will now create an instance of a Random for you, call it Random1, and place it in your bean bowl. The "Object browser" panel on the left side shows all the objects that are in your bowl.
Press the white button right next to the Random1 object. This opens up a property window for the object, here you can edit properties and execute methods. Go to the "Methods" tab and press "nextFloat" in the list of methods, then press "Execute method". A randomly generated number will appear to the right.
You can examine the new Float object by pressing the white box next to it. You can also right-click on it and select "Add to bowl" (you can do this with any object that you see). Go ahead and add the new object to your bowl. The object browser panel to the left should now show "Random1" and "Float1". You can rename your objects, for example right click on "Random1" and rename it to "Mr randomizer". This doesn't affect the object itself, it is just a display property.
Now create a java.util.HashSet by typing "java.util.HashSet" in the class browser, pressing "Examine...", and then executing the bottom constructor (the one with no parameters). HashSet1 should appear in the object browser. Click the white properties button for this object.
You can now drag objects into this window to add them to your hash set. Try adding both "Mr randomizer" and "Float1" to the hash set. Nifty, huh? You can of course also go to the "Methods" tab and execute the "add" method - the drag and drop thing is just a convenience feature. The "Update" button is only needed if objects are added or removed from another window, in which case the changes won't be visible until you press "Update".
If you want to quit and continue playing around with your objects another day you can save your whole bowl into a file, go to the "File" menu and press "Save as". The file is a normal serialized BeanBowl object that contains your objects. It will only work if all of your objects (and the objects they refer to, etc) implement java.io.Serializable (most non-native JDK objects do). Later on you can open your bowl by pressing "Open" in the "File" menu.
That's it for this tutorial. Have fun!
PS - a fun litte thing to do if you are bored is to examine "com.netbreeze.bbowl.gui.BeanBowlGUI" and execute the static method "getDefaultFrame". Then examine the resulting object - it has a property called "bowl". This is your bean bowl! You can add the bean bowl to itself and thereby start doing really weird stuff...
If you have any questions, suggestions, complaints, compliments, or whatever feel free to contact me at firstname.lastname@example.org. I can't guarantee that I'll answer but in most cases I do.