0

JButton の上に JLabel がありますが、上に表示されません。JButton のコードがコメント化されると、JLabel が表示されます。つまり、JLabel はそこにありますが、一番下にあります。JButtonの上にJLabelを表示する方法はありますか?

どんな助けでも素晴らしいでしょう。ありがとうございました!

    import java.awt.*;
    import javax.swing.*;

    public class TestingLabelsOverButtons extends JFrame
    {
        public static void main (String []args)
        {   
            new TestingLabelsOverButtons();
        }

        public TestingLabelsOverButtons()
        {
            super();
            setSize(500,500);
            Container c = getContentPane();
            c.setLayout(null);
            c.setBackground(Color.white);

            JButton button = new JButton("Button");
            button.setBounds(0,0,500,500);
            c.add(button);

            JLabel label = new JLabel("Label");
            label.setBounds(0,0,500,500);
            c.add(label);

          setVisible(true);
        }
    }

編集:

明確にするために、ボタンをクリックすると、JLabelがボタンの上に表示され、追加された「スコア」が表示されるゲームにこれが必要です。私のゲームでは、JLabel は JButton よりも小さい正方形になるため、JButton は引き続き表示される必要があります。

4

1 に答える 1

4

コンポーネントの ZOrder に基づいてペイント コンポーネントをスイングします。基本的に、最後に追加されたコンポーネントが最初にペイントされます。

したがって、次のようにして、目的を達成できます。

c.add(button);
c.add(label);

しかし、私はコメントに同意します。あなたは何をしようとしているのですか?おそらくもっと良い解決策があります。コンポーネントの配置とサイズ設定に setBounds() を使用することは、ほとんど良い考えではありません。

ボタンをクリックすると、ボタンの上に JLabel が表示され、追加された「スコア」が表示されるゲームにこれが必要です。

スコアを表示するためにユーザーにボタンをクリックさせる場合は、おそらく a を使用しJOptionPaneてラベルを表示する必要があります。それ以外の場合、ラベルはどのように消えますか? ユーザーに同じボタンをクリックさせるのは、あまり良い UI ではありません。

于 2013-06-12T05:26:55.853 に答える