If you want to use one JFrame then you could create a private JPanel where you would repaint it depending on what game he choose...
else if you want only 2 JFrames then you would need to create a reference variable to each JFrame. Meaning that you need to remove the 'new JFrame' for each click so that you gain control over it
in my case i would do;
private JFrame clockSolitaireFrame;
the ClockSolitaire class would use clockSolitaire variable to display the UI and use that variable to be able to close the frame in future. the code would look similar to this;
buttons[1].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
clockSolitaireFrame.dispose();
new ClockSolitaire();
dialog.setVisible(false);
}
});