What I'm trying to do is arrange five separate JPanels inside a frame. Here's what the output should look like: there will be one panel on the panel. Two panels directly below the top panel that vertically divide the space, and then two more panels that divide the remaining space horizontally.

I cannot figure out how to organize the panels as described above, and I think that is because I simply do not know the correct syntax. So any help or advice is much appreciated here, this is the code that I still have.
import java.lang.String.*; import java.lang.Exception.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Display extends JFrame implements ActionListener{ // instance variables private static final int FRAME_WIDTH = 400; private static final int FRAME_HEIGHT = 350; private static final int FRAME_X_ORIGIN = 150; private static final int FRAME_Y_ORIGIN = 150; private static final int BUTTON_WIDTH = 90; private static final int BUTTON_HEIGHT = 30; private JButton readFile; private JButton exit; private JButton stats; private JButton blank; private JCheckBox avgHomeworkScore; private JCheckBox avgTestScore; private JCheckBox sdHomeworkScore; private JCheckBox sdTestScore; private JRadioButton buttonOne; private JRadioButton buttonTwo; private JRadioButton buttonThree; private JRadioButton buttonFour; private JPanel header; private JPanel statistics; private JPanel courses; private JPanel display; private JPanel action; public static void main(String[] args){ Display frame = new Display(); frame.setVisible(true); } public Display(){ Container contentPane; //Set the frame properties setSize (FRAME_WIDTH, FRAME_HEIGHT); setResizable (false); setTitle ("CSCE155A Course Offerings Viewer"); setLocation (FRAME_X_ORIGIN, FRAME_Y_ORIGIN); contentPane = getContentPane(); contentPane.setLayout(new GridLayout()); contentPane.setBackground( Color.white ); //header //Create and Place the Buttons on the frame readFile = new JButton("Read File"); readFile.setBounds(4, 285, BUTTON_WIDTH, BUTTON_HEIGHT); exit = new JButton("Exit"); exit.setBounds(100, 285, BUTTON_WIDTH, BUTTON_HEIGHT); stats = new JButton("Stats"); stats.setBounds(195, 285, BUTTON_WIDTH, BUTTON_HEIGHT); blank = new JButton("Clear"); blank.setBounds(290, 285, BUTTON_WIDTH, BUTTON_HEIGHT); action = new JPanel(new FlowLayout()); action.setBackground(Color.blue); action.add(readFile); action.add(exit); action.add(stats); action.add(blank); contentPane.add(action); //Register this frame as an Action listener of the buttons readFile.addActionListener(this); exit.addActionListener(this); stats.addActionListener(this); blank.addActionListener(this); //Create and Place the checkboxes on the frame avgHomeworkScore = new JCheckBox(); avgHomeworkScore.setMnemonic(KeyEvent.VK_H); contentPane.add(avgHomeworkScore); avgHomeworkScore.setSelected(true); avgTestScore = new JCheckBox(); avgTestScore.setMnemonic(KeyEvent.VK_T); avgTestScore.setSelected(true); sdHomeworkScore = new JCheckBox(); sdHomeworkScore.setMnemonic(KeyEvent.VK_S); sdHomeworkScore.setSelected(true); sdTestScore = new JCheckBox(); sdTestScore.setMnemonic(KeyEvent.VK_D); sdTestScore.setSelected(true); statistics = new JPanel(new GridLayout(0,1)); contentPane.add(statistics); statistics.add(avgHomeworkScore); statistics.add(avgTestScore); statistics.add(sdHomeworkScore); statistics.add(sdTestScore); avgHomeworkScore.addActionListener(this); avgTestScore.addActionListener(this); sdHomeworkScore.addActionListener(this); sdTestScore.addActionListener(this); //create the radio buttons buttonOne = new JRadioButton(); buttonOne.setMnemonic(KeyEvent.VK_1); buttonOne.setSelected(true); buttonTwo = new JRadioButton(); buttonTwo.setMnemonic(KeyEvent.VK_2); buttonThree = new JRadioButton(); buttonThree.setMnemonic(KeyEvent.VK_3); buttonFour = new JRadioButton(); buttonFour.setMnemonic(KeyEvent.VK_4); ButtonGroup group = new ButtonGroup(); group.add(buttonOne); group.add(buttonTwo); group.add(buttonThree); group.add(buttonFour); buttonOne.addActionListener(this); buttonTwo.addActionListener(this); buttonThree.addActionListener(this); buttonFour.addActionListener(this); courses = new JPanel(new GridLayout(0,1)); courses.setBackground(Color.blue); courses.add(buttonOne); courses.add(buttonTwo); courses.add(buttonThree); courses.add(buttonFour); contentPane.add(courses); //Exit program when the viewer is closed setDefaultCloseOperation(EXIT_ON_CLOSE); }
source share