You have not posted full code to find issue, but here is small demo of Z-order:
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class NewClass extends JFrame {
public NewClass(){
super("Test");
setSize(200, 200);
JPanel panel = new JPanel();
setContentPane(panel);
JButton button1 = new JButton("Button 1");
JButton button2 = new JButton("Button 2");
JButton button3 = new JButton("Button 3");
button1.setBounds(10, 10, 100, 40);
button2.setBounds(5, 5, 100, 30);
button3.setBounds(15, 15, 150, 40);
panel.setLayout(null);
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.setComponentZOrder(button1, 1);
panel.setComponentZOrder(button2, 0);
panel.setComponentZOrder(button3, 2);
// OR to swap z order of buttons, try below
// panel.setComponentZOrder(button1, 0);
// panel.setComponentZOrder(button2, 1);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String [] args){
new NewClass();
}
}