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

だから私が見ることができるのは、背景色(ここでは青)の大きな画面だけです。

助けてくれてありがとう

4

2 に答える 2

3

フレームを別に試していないのではないでしょうか?

フレームコードのこの部分:

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

独自のコンテンツをペイントすることは決してありません。色付きの四角形だけです。

したがって、私の推奨事項は次のとおりです。

  1. JFrameのpaintメソッドをオーバーライドしないでください-多くの問題が発生します
  2. メインコンテナパネルの背景を希望の色に設定するだけです
  3. 最初にフルスクリーンウィンドウのないフレームを試して、必要なものが表示されるかどうかを確認してください
于 2012-09-17T10:08:42.430 に答える
2

の「所有者」の目的を誤解していると思いますWindow

JFrameから伸びWindowます。

だから、言う代わりに

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

あなただけを使用する必要があります

gs.setFullScreenWindow(frame);

ああ、そしてミクルも言ったこと。

于 2012-09-17T10:24:34.883 に答える