javaterminatesplitpane

java splitpane help code terminates when i run it


When i try to run this code i get a message in the run console saying the operation has been terminated, however there are no errors in the code and everything appears to be fine

public class Component1 extends JFrame 
{
    public Component1 () {

        setTitle("GUI");
        setSize(150, 150);

        //The code below creates the two panels of the UI And they are both labelled with names.
        JPanel jsp1 = new JPanel();
        JPanel jsp2 = new JPanel();
        JLabel j1 = new JLabel("Left Side");
        JLabel j2 = new JLabel("Right Side");

        //jsp1 and jsp2 work together with the code above to create the two panels of the interface by adding "J1" and "J2" this allows 
        //both sides to be labelled and appear on the UI        

        jsp1.add(j1);
        jsp2.add(j2);   

        JSplitPane splitPane = new
JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
            true, jsp1, jsp2);

        splitPane.setOneTouchExpandable(true);
        getContentPane().add(splitPane);
    }

    public static void main(String[] args) 
    {
        Component1 sp = new Component1 ();
        sp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        sp.setVisible(true);
    }
    Component1panel panel = new Component1panel ();
}

Solution

  • You exit your application when your main() ends. You should start a thread that holds your frame.

    Try editing your main to this (fix imports if needed):

    public static void main(String[] args){
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
    
                // build and show your GUI               
    
                Component1 sp = new Component1 ();
                sp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                sp.setVisible(true);
            }
        });
    }
    

    Also, maybe a link to a JFrame hello-world will help: link