2012-09-17 93 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说为好。