JPanel を JFrame に追加するのは初めてで、少し助けが必要です。私が作成したあるクラスでは、大きな長方形が描かれています。このクラスは JPanel のサブクラスです。もう 1 つのクラスは、JFrame のサブクラスです。そのクラスの新しい JPanel オブジェクトを作成すると、長方形がフレームに表示されますが、通常よりも途方もなく小さく、正しい位置にありません。これがコードです、何が問題なのですか?
public void gameRender() {
if( dbImage == null ) {
dbImage = createImage( dbWIDTH, dbHEIGHT );
if( dbImage == null )
return;
}
//else
dbg = dbImage.getGraphics();
dbg.setColor( Color.white );
dbg.fillRect( 0, 0, dbWIDTH, dbHEIGHT );
dbg.setColor( Color.black );
これは、プログラムの早い段階で while ループ (アニメーション ループなど) によって常に呼び出されるメソッドの一部です。これは JPanel サブクラスの一部であり、このコードのチャンクはダブル バッファリングに使用されます。dbWIDTH は 500 で、dbHEIGHT は 400 です。
このコードは、JPanel サブクラスのオブジェクトを作成しようとしている JFrame サブクラスからのものです (JPanel サブクラスは WalkAndJump3 と呼ばれます)。
wj = new WalkAndJump3();
Container c = getContentPane();
c.setLayout( new FlowLayout() );
c.add( wj );
paintComponent をオーバーライドして JPanel サブクラスで行ったことを試してみましたが、うまくいきませんでした。WalkAndJump3 wj をインスタンス変数として宣言したので、最初の行は問題になりません。どうしたの?ここでも問題は、描画された長方形が小さすぎて場違いなことです。