You should NOT be overriding the paint() method. Custom painting is done by overriding the paintComponent() method of a JPanel (or JComponent) and then you add the panel to the frame.
Read the section from the Swing tutorial on
Custom Painting for more information and examples.
Having said that your problem is that you didn't invoke super.paint(g), so the children don't get painted. But don't do this, read the tutorial and do it properly!!!