我对全屏有问题:我创建了一个框架并将其放在全屏窗口中,但是除了框架背景的颜色外,我什么也看不到。

这是我使用的代码:

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);
    }
}


因此,我所看到的就是一个带有背景色(这里是蓝色)的大屏幕;

谢谢大家的帮助

最佳答案

我敢打赌,您没有单独尝试过镜框,对吗?

框架代码的这一部分:

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


永远不会让它绘制自己的内容,而只是着色的矩形。

所以我的建议是:


不要重写JFrame的paint方法-它将引起很多问题
只需将主容器面板背景设置为所需的颜色
首先尝试不带全屏窗口的框架,看看它是否显示您需要的内容

09-11 20:29
查看更多