我遇到全屏问题:我创建一个框架并将其放在全屏窗口中,但我只看到框架背景的颜色。
这是我使用的代码:
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);
}
}
所以我只能看到,是一个背景颜色的大屏幕(这里是蓝色);
感谢您的帮助
答案 0 :(得分:3)
我打赌你没有单独试试你的框架,是吗?
这部分框架代码:
public void paint(Graphics g)
{
Graphics2D g2d = (Graphics2D)g;
g2d.setPaint(new Color(0,0,0));
g.fillRect(0,0,200,200);
}
永远不会让它绘制自己的内容,只是彩色矩形。
所以我的推荐是:
答案 1 :(得分:2)
我认为你错误地理解了Window
的“所有者”的目的。
JFrame
从Window
延伸。
所以,而不是说
win = new Window(frame);
gs.setFullScreenWindow(win);
您只需要使用
gs.setFullScreenWindow(frame);
哦,米克尔也说了。