2012-09-17 92 views
0

我有一個全屏的問題:我創建一個框架,並把它放在一個全屏窗口,但我什麼都看不到框架的背景的顏色。框架不顯示全屏

這裏是我使用的代碼:

PB frame = new PB(); 

win = new Window(frame); 

gs.setFullScreenWindow(win); 

frame.setVisible(true); 
frame.repaint(); 

win.repaint(); 

和PB級,我的框架:

public class PB extends JFrame 
{ 
    PB() 
    { 
     super(); 
     this.setBackground(Color.BLUE); 
     this.getContentPane().add(new JButton("button")); 
     JPanel jp = new JPanel(); 
     jp.setBackground(Color.red); 
     jp.setSize(360, 200); 
     this.getContentPane().add(jp); 
     this.setVisible(true); 
     repaint(); 
     pack(); 
    } 
    @Override 
    public void paint(Graphics g) 
    { 
     Graphics2D g2d = (Graphics2D)g; 
     g2d.setPaint(new Color(0,0,0)); 
     g.fillRect(0,0,200,200); 
    } 
} 

因此,所有我所看到的,是一個大屏幕的背景顏色(這裏的藍色);

感謝所有幫助

+1

Fro引用,工作[sscce](http://sscce.org/)可能會找到[這裏](http://stackoverflow.com/a/7457102/230513)。 – trashgod

+0

該框架確實全屏顯示,你只是畫一個彩色的矩形... – brimborium

+0

非常感謝你! sscce讓我走出了坑 – IonOne

回答

3

我敢打賭,你不分開試試你的框架,是嗎?

的框架這部分代碼:

public void paint(Graphics g) 
{ 
    Graphics2D g2d = (Graphics2D)g; 
    g2d.setPaint(new Color(0,0,0)); 
    g.fillRect(0,0,200,200); 
} 

絕不會讓它繪製其自己的內容,只是彩色矩形。

所以我recomendations是:

  1. 不覆蓋Jframe的paint方法 - 這會造成很多的問題
  2. 只需設置主容器面板背景所需顏色
  3. 嘗試框架不完整 - 首先看屏幕窗口,看看它是否顯示你需要的東西
+0

+1'paint' pickup – MadProgrammer

+0

謝謝!!好的建議... – IonOne

2

我認爲你錯誤地忽略了Window的「所有者」的目的。

JFrameWindow延伸。

所以,與其說

win = new Window(frame); 
gs.setFullScreenWindow(win); 

你只需要使用

gs.setFullScreenWindow(frame); 

哦,什麼Mikle說爲好。