setBackgroundColor不起作用

时间:2015-05-14 10:40:57

标签: java swing jpanel

我试图将JFrame框架设置为背景颜色,但它无法正常工作。 我在这里错过了什么? 这是代码:

public class PingPong extends JPanel{

private static final long serialVersionUID = 1L;
Ball ball = new Ball(this); 
Table table = new Table(this);
Player player = new Player(this);
PC pc = new PC(this);

@Override
public void paintComponent(Graphics g){
    super.paintComponent(g);

    table.paint(g);
    ball.repaint(g);
    player.repaint(g);
    pc.repaint(g);

}

public static void main(String[] args){
    /* Creating the frame */
    JFrame frame = new JFrame();
    frame.setTitle("Ping Pong!");
    frame.setSize(600, 600);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.add(new PingPong());
    frame.getContentPane().setBackground(Color.DARK_GRAY);
    frame.setVisible(true); 
}

}

它只是不会改变颜色..

2 个答案:

答案 0 :(得分:2)

由于您向JPanel添加了JFrame(PingPong对象),JPanel已超过JFrame,因此JFrame的颜色变为不可见。

setBackground(Color.DARK_GRAY);应用于您的PingPong对象。

答案 1 :(得分:0)

尝试添加:

frame.getContentPane().setOpaque(true);