Write a program whose source file is named \"UnitProgl.java\" that does the following: Creates a frame with a GridLayout Manager Creates two panels and adds them to the frame, stacked one over the other. In each panel creates three buttons, side by side. The buttons should be labeled \"Button 1\", \"Button 2\", \"Button 3\", \"Button 4\", \"Button 5\" and \"Button 6\". Displays this GUI when run. The only buttons that actually works will be the buttons on the window title bar: minimize, maximize and the exit button in the upper right hand corner of the programs window. Part 2 - Event Driven Programming Write a program whose source file is named \"UnitProg2.java\". Do the following: Start by copying the program code from part 1 and modifying it. This program will have a GUI that looks just like the previous one. The goal is to make the JButtons work. Add code to handle the events when the user presses any of the six buttons on the GUI. When the user presses a button simply write out to the console \"The user pressed Button X\", where \"X\" is the number of the button. For example, when \"Button 2\" is pressed the message written to the console should be \"The user pressed Button 2.\". Solution UnitProg1.java import java.awt.*; import javax.swing.*; public class UnitProg1 { private JFrame mainFrame; private JPanel controlPanel; private JPanel controlPanel1; public UnitProg1(){ prepareGUI(); } public static void main(String[] args){ UnitProg1 prog1 = new UnitProg1(); } private void prepareGUI(){ mainFrame = new JFrame(\"UnitProg1\"); mainFrame.setSize(400,400); mainFrame.setLayout(new GridLayout(2,1)); controlPanel = new JPanel(); controlPanel.setLayout(new FlowLayout()); controlPanel1=new JPanel(new FlowLayout()); JButton button1=new JButton(\"Button1\"); JButton button2=new JButton(\"Button2\"); JButton button3=new JButton(\"Button3\"); JButton button4=new JButton(\"Button4\"); JButton button5=new JButton(\"Button5\"); JButton button6=new JButton(\"Button6\"); controlPanel.add(button1, controlPanel); controlPanel.add(button2, controlPanel); controlPanel.add(button3, controlPanel); controlPanel1.add(button4, controlPanel1); controlPanel1.add(button5, controlPanel1); controlPanel1.add(button6, controlPanel1); mainFrame.add(controlPanel); mainFrame.add(controlPanel1); mainFrame.setVisible(true); } } UnitProg2.java import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.*; public class UnitProg2 { private JFrame mainFrame; private JPanel controlPanel; private JPanel controlPanel1; public UnitProg2(){ prepareGUI(); } public static void main(String[] args){ UnitProg2 prog2 = new UnitProg2(); } private void prepareGUI(){ mainFrame = new JFrame(\"UnitProg2\"); mainFrame.setSize(400,400); mainFrame.setLayout(new GridLayout(2, 1)); controlPanel = new JPanel(); controlPanel.setLayout(new FlowLayout()); controlPanel1=new JPanel(new F.