如何让JLabel显示在JButton上?

时间:2013-06-12 05:22:00

标签: java eclipse user-interface jbutton jlabel

我有一个JLabel,它位于JButton的顶部,但它不会出现在ontop上。当JButton的代码被注释掉时,会显示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仍然需要可见。

1 个答案:

答案 0 :(得分:4)

根据组件的ZOrder摆动涂料组件。基本上,添加的最后一个组件首先被绘制。

所以你可以做到你想做的事情:

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

虽然,我同意这些意见。你想做什么?可能有更好的解决方案。使用setBounds()定位和调整组件大小几乎绝不是一个好主意。

  

我的游戏需要这个,当点击按钮时,按钮顶部会显示一个JLabel,以显示添加的“得分”。

如果您要强制用户单击按钮以显示分数,那么您应该使用JOptionPane来显示标签。否则标签将如何消失?强制用户点击相同的按钮不是一个非常好的用户界面。