-1

「frame1」という名前のメインフレームがあります。「frame1」で、パネルに何かを表示するためにパネルを追加したいのですが、パネルをメイン フレーム、つまり「frame1」に追加できません。

 public void drawstack()
 {
    JPanel m1 = new JPanel(new BorderLayout());
    m1.setBorder(BorderFactory.createRaisedSoftBevelBorder());
    m1.setBackground(Color.red);
    frame1.add(m1);
 }

これは私のコードで、最後の行、つまり「frame1.add(m1);」でエラーが発生します。エラーは

cannot find symbol : frame1.
4

4 に答える 4

1

frame1 は、クラスのフィールドである必要があるか、パラメーターとしてメソッドに渡される必要があります

于 2012-06-16T12:02:32.290 に答える
1

このエラーは、コンパイラが という名前の変数 (またはクラス) を見つけられないことを示していますframe1。フラグ付きのステートメントを機能させるには、名前付きの変数を宣言し、次のようにオブジェクトでframe1インスタンス化する必要があります。JFrame

JFrame frame1 = new JFrame();
frame1.add(m1);

: 同じクラスの他のメソッドからアクセスする場合は、この変数をクラスのメンバーにすることもできます。

:JFrameによって参照されるインスタンス化されたオブジェクトは、最初は非表示です。呼び出すことframe1によって表示可能にする必要があります。setVisible(true)

クラスがから派生し、現在のオブジェクトによって表されるフレームにパネルを追加する場合は、代わりに参照JFrameを使用できます。thisframe1

this.add(m1);

この場合、次のものを省略することもできますthis

add(m1);
于 2012-06-16T12:02:39.153 に答える
0

明らかにエラーがありますthis.add(m1);。frame1 という名前の変数を初期化していません。代わりに使用してください。動作するはずです。

于 2012-06-16T12:01:31.340 に答える
0

投稿したメソッドが拡張するクラス内にあるJFrame場合は、呼び出す必要があります

getContentPane().add(m1);

また、フレームに複数の要素を追加する場合は、レイアウト マネージャーを使用します。

于 2012-06-16T12:04:28.957 に答える