JFrame Help

Hi everyone, I’m trying to create a java calculator program.
I have three files:

CalcControl -> CalcGUI -> CalcKeyboard

The CalcGUI extends JFrame and is instanced in CalcControl. I would like to create a JPanel in CalcKeyboard that can be added to CalcGUI, but I’m having problems pulling it into CalcGUI.

CalcControl:

public class CalcControl {
	public static void main(String[] args) {
		CalcGUI newCalc = new CalcGUI();
	}
}

CalcGUI:

import javax.swing.*;

class CalcGUI extends JFrame {

	JPanel mainPanel;
		
	public CalcGUI() {
	
		setSize(200,400);
		setLocation(200,200);
		setTitle("Calculator");
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		
		mainPanel = new JPanel();
		mainPanel.setLayout(null);
		
		CalcKeyboard newKeyboard = new CalcKeyboard();
		newKeyboard.setSize(200,400);
		
		add(newKeyboard);
		add(mainPanel);
		
		setVisible(true);
	}
	
}

CalcKeyboard:

import javax.swing.*;
import java.util.ArrayList;

class CalcKeyboard extends JPanel {

	JPanel keyPanel;
	JButton key1,key2,key3,key4,key5,key6,key7,key8,key9,key0;
	JButton addButton,subtractButton,multiplyButton,divideButton,decimalButton,equalsButton;

	
	public CalcKeyboard() {
	
		keyPanel = new JPanel();
		keyPanel.setLayout(null);
		
		ArrayList<JButton> keyList = new ArrayList<JButton>();
		keyList.add(key1 = new JButton("1"));
		keyList.add(key2 = new JButton("2"));
		keyList.add(key3 = new JButton("3"));
		keyList.add(addButton = new JButton("+"));
		keyList.add(key4 = new JButton("4"));
		keyList.add(key5 = new JButton("5"));
		keyList.add(key6 = new JButton("6"));
		keyList.add(subtractButton = new JButton("-"));
		keyList.add(key7 = new JButton("7"));
		keyList.add(key8 = new JButton("8"));
		keyList.add(key9 = new JButton("9"));
		keyList.add(multiplyButton = new JButton("X"));
		keyList.add(key0 = new JButton("0"));
		keyList.add(decimalButton = new JButton("."));
		keyList.add(equalsButton = new JButton("="));
		keyList.add(divideButton = new JButton("/"));
		
		int row = 0;
		int col = 0;
		int h = 45;
		int w = 45;
		
		for (int n = 0; n < keyList.size(); n++) {
				keyList.get(n).setBounds(col*w,row*h,w,h);
				keyPanel.add(keyList.get(n));
			if(col == 3) {
				row++;
				col = 0;
			}
			else
				col++;
		}
		
		keyPanel.setVisible(true);
	}
	
}

Any ideas why the CalcKeyboard won’t display when run? Thanks for any help.