JButton正在图像后面

| 我正在制作一个开始屏幕,并且工作得很好,启动时得到了背景图像,现在我试图在开始菜单上绘制一个JButton,它是一个JFrame。但是,当我运行程序时,该按钮出现在背景图片的后面。如果我将鼠标悬停在放置按钮的区域上方,则该按钮会闪烁,单击时也会发生这种情况。有什么办法绘制背景的按钮INFRONT?我在代码中最后做了一个按钮。我的代码绘制背景和按钮:
    public void drawStartScreen(){
    startScreenOn = true;
    Graphics2D b = buffer.createGraphics();
    b.setColor( Color.WHITE );
    b.fillRect(0, 0, 800, 600);
    b.drawImage(start,0,0,null);

    setLayout( null );
    button = new JButton(\"Start Game\");
    button.setBounds(10,10,100,100);
    button.setVisible( true );
    add(button);
}
它先绘制图像,然后绘制按钮,但是按钮仍在图像后面绘制。     
已邀请:
覆盖JFrame上的paint方法:
@Override
public void paint(Graphics g) {
    super.paint(g);
    Graphics2D b = (Graphics2D)g;
    b.setColor( Color.WHITE );
    b.fillRect(0, 0, 800, 600);
    b.drawImage(start.getImage(),0,0,null);
    b.dispose();        
}
注意,完成后,这在父级上调用
paint()
,在图形上下文上调用
dispose()
。我只是尝试了这段代码,它为我工作。     
您正在混合绘画和添加组件,您绝对不应该这样做。在创建屏幕或第一次需要它们时,请添加组件,但要确保只执行一次。然后在
paintComponent()
方法中单独修改需要绘画更改的组件。     
我建议您使用5英镑(我只能在没有其他选择的情况下进行定制绘画)。 如果您仍然想将“低级”绘画与“高级”'6ѭ层次结构混合在一起,请看一个有关具有多层的
JFrame
的问题。     

要回复问题请先登录注册