1

ボタンをクリックするとラベルがフレームに追加されるJava Swingのコードを書いています。そして、ラベルは互いに重なり合うように追加され、スタックのようなビューを作成します。

label.setbouds(x,y,100,100) 関数を使用して独自のレイアウトを作成しています。アクションリスナーでボタンがクリックされるたびに、新しいラベルが追加されます。例えば

 if(e.getSource()==button){
                   label.setBounds(x+5,y+5,100,100);
                   frame.add(label);
                   frame.repaint();
              }

ここでの問題は、これらのラベルがペイントされたときに、追加された最初のラベルが常に上に残り、新しく追加されたラベルが奇妙なラベルで覆われることです。

新しく追加されたフレームが一番上になり、古いラベルが重なるようにフレームをペイントする方法を誰かが説明できる場合は、助けが必要です。

よろしく

Aコーダー

4

1 に答える 1

5

JLayeredPane適切なインデックスでラベルを挿入します。また、下のラベルのコンテンツを実際に覆い隠すように、JLabel不透明 ( ) に設定してください。setOpaque(true)ただし、下のラベルが上のラベルよりも大きい場合でも、その一部が表示されます。

于 2012-04-04T12:49:39.787 に答える