I am new to Swing and I don't understand how to do layouts properly. I need to create the following layout
I have tried to use a grid layout and a border layout but I just can't get it to look the way I designed it in the picture. Can anyone help me?
Attempt
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Test extends JFrame
{
    public Test()
    {
        //Make a content frame
        Container contentPane = getContentPane();
        Container contentPane2 = getContentPane();
        Container contentPane3 = getContentPane();
        //Create a grid layout - This will go to the left
        contentPane.setLayout ( new GridLayout ( 4, 1 ) );  //4 Rows and 1 Columns
            //Button 1
            contentPane.add ( new JButton ( "Button 1" ) );
            //Button 2
            contentPane.add ( new JButton ( "Button 2" ) );
            //Button 3
            contentPane.add ( new JButton ( "Button 3" ) );
            //Button 4
            contentPane.add ( new JButton ( "Button 4" ) );
        //Create a border layout - This will go in the middle.
        contentPane2.setLayout ( new BorderLayout() );
            //Label - Welcome to my application
            contentPane2.add ( new JLabel ( "Welcome to my application" ) );
            //Image 1
            contentPane2.add  ( new ImageIcon("img/button.png" ) );
            //Change background colour
        //Create a grid layout - This will go to the right
        contentPane3.setLayout ( new GridLayout ( 4, 1 ) ); //4 Rows and 1 Columns
            //Button 5
            contentPane3.add ( new JButton ( "Button 5" ) );
            //Button 6
            contentPane3.add ( new JButton ( "Button 6" ) );
            //Button 7
            contentPane3.add ( new JButton ( "Button 7" ) );
            //Button 8
            contentPane3.add ( new JButton ( "Button 8" ) );
        //Set window parameters
        setTitle ( "Test Application" );
        setSize ( 200, 200 );
        setVisible ( true );
    }
    public static void main ( String[] args )
    {
        Test myFrame = new Test();
    }//End main
}//End Class

 
     
    