按钮只在鼠标话划过的时候才会出现(标签-java|关键词-class)

问题遇到的现象和发生背景

两个按钮其中一个只在鼠标话划过的时候才会出现。

问题相关代码,请勿粘贴截图

import java.awt.;
import javax.swing.
;

public class MenuGUI extends JPanel{
public MenuGUI() {
int width = 500, height = 500;//设置窗体大小

    JFrame jf = new JFrame();        //主框体
    jf.setTitle("双人炸弹人");            
    jf.setLayout(null);
    jf.setBounds(500, 200, width, height);        //框体位置和大小
    Container c = jf.getContentPane();
    
    
    JButton b1 = new JButton("作为主机(P1)创建游戏");    //两个按钮
    JButton b2 = new JButton("作为客机(P2)加入游戏");
    b1.setBounds(150, 300, 200, 30);
    b2.setBounds(150, 350, 200, 30);
    c.add(b2);
    c.add(b1);
    
    
    //添加窗口图标
    jf.setIconImage(new ImageIcon("src\\gui\\Resources\\IC.jpg").getImage());
    
    
    //添加主界面背景图
    ImageIcon img = new ImageIcon("src\\gui\\Resources\\BGMain.jpg");
    
        /*下面这三句意思是:得到此图标的 Image(image.getImage());
        在此基础上创建它的缩放版本,缩放版本的宽度,高度与JLble一致(getScaledInstance(width, height,Image.SCALE_DEFAULT ))
        最后该图像就设置为得到的缩放版本(image.setImage)
        ————————————————
        版权声明:本文为CSDN博主「weixin_39745933」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
        原文链接:https://blog.csdn.net/weixin_39745933/article/details/114606425
         */
    Image imgS = img.getImage();
    imgS = imgS.getScaledInstance(width, height, Image.SCALE_DEFAULT);
    img.setImage(imgS);
    
    
    JLabel jlbg = new JLabel(img);        //(图片放在JLayerPane层,组件放在ConentPane层,并让ConentPane层透明)
    jlbg.setBounds(0, 0, width, height);
    jf.getLayeredPane().add(jlbg);
    JPanel panel = (JPanel)jf.getContentPane();
    panel.setOpaque(false);
    
    paint(b2.getGraphics());
    jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    jf.setVisible(true);
    c.setVisible(true);
    
    
}
public static void main(String[] args) {
    new MenuGUI();
}

}

运行结果及报错内容

不会报错,就是按钮不显示

我的解答思路和尝试过的方法

我添加了一张背景图,没有背景图之前是正常的

我想要达到的结果

让两个按钮都保持可见。