2012-10-13 21 views
3

這是一些代碼來創建一個基本的Java窗口:如何使用Java AWT的setBackground

JPanel pane = new JPanel(); 
gui(String title){ 
    super(title); 
    setBounds(100,100,500,500); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    Container con = this.getContentPane(); 
* con.setBackground(new Color(0,0,0)); 
    con.add(pane); 
    setVisible(true); 
} 

標有星號(*)是爲了使窗口的背景色黑線(0,0, 0)。但是,這條線似乎什麼都不做。 (我在這裏嘗試過使用pane.setBackground,但是沒有任何差異。)

如何更改背景顏色?

+0

爲了更好地幫助越早,張貼[SSCCE](http://sscce.org/)。 –

回答

5

您已在JFrame上添加JPanel,它完全阻擋已設置顏色的底層容器。

你可以這樣做,而不是:

public Gui(String title) { 
    super(title); 
    JPanel pane = new JPanel(); 
    setBounds(100, 100, 500, 500); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    Container con = this.getContentPane(); 
    pane.setBackground(new Color(0, 0, 0)); 
    con.add(pane); 
    setVisible(true); 
} 
+0

我試着添加,而沒有改變。我應該特別地放在哪裏? – ACarter

+0

它應該放在星號*所在的位置。 – Reimeus

+0

這沒有什麼區別?任何線索爲什麼? – ACarter

1

你不能爲一個JFrame的內容窗格的背景色。 由我的意思是:

JFrame f = new JFrame() ; 
f.setBackground(Color.RED) ; 

什麼,但是你應該做的是創建一個JPanel,將作爲您的背景和設定它的顏色就像這樣:

backgroundPanel.setBackground(Color.RED);

+0

我試着添加,並沒有區別。我應該把它放在哪裏? – ACarter

+1

爲什麼不能*爲JFrame的內容窗格*設置背景顏色? 'JFrame#setBackground'和'JFrame#getContentPane#setBackground'對我來說工作得很好 – MadProgrammer

+0

糟糕,你是對的。這是JFrame.setBackground(Color.RED)當你看到這個評論時,我會刪除我的答案。 –