I have 2 classes. Both implements runnable to create the GUI. The first one is the main, and the second one is the secondary class.
I want within the actionlistener of the main class to startup the secondary class.
Here is the code (the two classes are separated files):
public class Main implements Runnable
{
    private JTextField txt1, txt2;
    private JLabel lbl1, lbl2;
    public void run() 
    {
        JFrame frame = new JFrame("Secondary");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container pane = frame.getContentPane();
        JPanel background = new JPanel();
        background.setLayout(new BoxLayout(background, BoxLayout.LINE_AXIS));
        ......... 
        // Horizontally adding the textbox and button in a Box
        Box box = new Box(BoxLayout.Y_AXIS);
        ......
        background.add(box);
        pane.add(background);
        frame.pack();
        frame.setVisible(true);
    }
    private class SListener implements ActionListener 
    {
        public void actionPerformed(ActionEvent a)
        {
            Secondary s = new Secondary();
        }
    } 
    public static void main (String[] args) 
    {
        Main gui = new Main();
        SwingUtilities.invokeLater(gui);
    }
}
public class Secondary implements Runnable
{
    private JTextField txt1, txt2;
    private JLabel lbl1, lbl2;
    public Secondary()
    {
      Secondary gui = new Secondary();
      SwingUtilities.invokeLater(gui);
    }
    public void run() 
    {
        JFrame frame = new JFrame("Secondary");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container pane = frame.getContentPane();
        JPanel background = new JPanel();
        background.setLayout(new BoxLayout(background, BoxLayout.LINE_AXIS));
        ......... 
        // Horizontally adding the textbox and button in a Box
        Box box = new Box(BoxLayout.Y_AXIS);
        ......
        background.add(box);
        pane.add(background);
        frame.pack();
        frame.setVisible(true);
    }   
}
I want to keep the code in two files, I don't want to mixed the two classes in one file. As you can see from the code, in the Secondary class, in it's constructor I create an Instance of the Secondary class and I run the gui so that when the Instance of this class is created in the Main class, to run the gui.
Unfortunately this technique is not working.
Any ideas? Thanks
 
     
     
    