0

そのため、私は現在、Graphics オブジェクトと「ゲーム ループ」を使用して作成されたクールな背景効果を持つログイン画面を作成しています。ただし、追加するとJTextField、上ではなくすべての下に表示されます。内のすべてのコンポーネントの下にグラフィックスを描画する方法はありJFrameますか?

グラフィックのイメージは次のとおりです。

ここに画像の説明を入力

フレームの表面に描画されるすべてのもののすぐ下に、テキスト フィールドがあります。コンポーネントの下に描画されるように、どういうわけかこれを並べ替えたいと思います。

これが私の現在のフレームコードです:

    frame = new JFrame("Login");
    frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
    frame.getContentPane().setPreferredSize(new Dimension(450, 200));
    frame.getContentPane().setBackground(Color.black);
    frame.setBackground(Color.black);
    frame.setLayout(new FlowLayout());

    JTextField user = new JTextField(20);
    user.setLocation(100, 200);
    user.setVisible(true);
    frame.add(user);

    frame.pack();
    frame.setVisible(true);

    frame.createBufferStrategy(2);
    buff = frame.getBufferStrategy();

    Painter painter = new Painter();
    frame.add(painter);

何か助けてください。

4

1 に答える 1

5

AnimationTestに 1 つのアプローチを示します。コンポーネントが背景の上にレンダリングされるようにオーバーライドpaintComponent()して呼び出します。super.paintComponent()任意の場所をクリックしてテキスト フィールドを配置します。サイズを変更して、デフォルトがどのように機能するかを確認しますFlowLayoutJPanel既存のバッファ戦略を使用して、デフォルトでダブルバッファリングされます。

于 2012-06-20T07:00:55.860 に答える