//mainframe.setLayout(new BorderLayout());
Не требуется.Диспетчером макета по умолчанию на панели содержимого фрейма является BorderLayout.
//mainframe.getContentPane().add(centrejPanel, BorderLayout.CENTER);
Не добавляйте пустую панель на панель содержимого фрейма.Просто добавьте LayeredPane непосредственно на панель содержимого.
keyText.setBounds(0, 50, 100, 20);
...
jLabel.setBounds(0, 150, 100, 20);
JLayeredPane использует нулевой макет, поэтому вы обязаны установить размер и расположение каждого компонента, добавляемого на многоуровневую панель.
//centrejPanel.getRootPane().add(layeredPane);
Не добавляйте многослойную панель в корневую панель.Даже не знаю, сработает ли это, но в любом случае панель содержимого просто покроет многоуровневую панель.
Прочтите раздел из учебника Swing по Использование контейнеров верхнего уровня , чтобы узнать, каквсе слои фрейма структурированы.
mainframe.add(layeredPane);
Просто добавьте многоуровневую панель непосредственно на панель содержимого фрейма.Прочитайте учебник Swing по Как использовать LayeredPane для получения дополнительной информации и рабочих примеров.
Всегда начинайте с примеров из учебника при изучении новой концепции или компонента.