0

何度も試しましたがうまくいきません。ラベルをクリックしても何も起こりません。

 private void jLabel1MouseClicked(java.awt.event.MouseEvent evt)                 

  {                                     
        setLayout(new BorderLayout());
        JPanel o = new JPanel ();
        o.setPreferredSize(new Dimension(122,200));
        o.setBackground(Color.red);
    add(o,BroderLayout.CENTER);

        // TODO add your handling code here:
    } 
4

3 に答える 3

0

リスナーが正しく実装されている場合は、これを変更する必要があります

o.setPreferredSize(new Dimension(122,200));

これとともに

o.setSize(122,200);

メソッドを置くこともできますがsetVisible、それがなくても機能するはずです

于 2013-08-05T11:36:11.200 に答える
0

Netbeans を使用していると思います。はいの場合、表示されたメソッドは自動生成されます。これは、自動生成されたコード セグメントにリスナーが正しく実装されていることを意味します。今のところ、これは、JPanel を実装していないリスナーを表示する際にエラーがあることを意味します。 、いくつかの提案を見つけました。

  1. あなたはレイアウトを書きBroderましたが、そのBorderレイアウトですが、これは質問を投稿する際のタイプミスのようです。
  2. 第二に、フレームを更新していないため、JPanel を追加するだけではそれを表示するのに十分ではないため、このコードを追加します。this.revalidate();

したがって、最終的にブロックコードは次のようになります。

private void jLabel1MouseClicked(java.awt.event.MouseEvent evt)                 

{                                     
    setLayout(new BorderLayout());
    JPanel o = new JPanel ();
    o.setPreferredSize(new Dimension(122,200));
    o.setBackground(Color.red);
    add(o,BorderLayout.CENTER);
    revalidate();        
}
于 2013-08-12T18:37:24.110 に答える