java - 如何让JLabel显示在JButton之上?

原文 标签 java eclipse user-interface jbutton jlabel

我在JButton的顶部有一个JLabel,但它不会在顶部显示。注释掉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仍然需要可见。

最佳答案

根据组件的ZOrder摆动绘画组件。基本上,最后添加的组件先绘制。

因此,您可以通过执行以下操作来实现所需的功能:

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


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


  对于我的游戏,在单击按钮时,它会需要一个JLabel,以显示添加的“分数”。


如果要强制用户单击按钮以显示分数,则可能应该使用JOptionPane来显示标签。否则标签将如何消失?强迫用户单击同一按钮不是一个很好的UI。

关于java - 如何让JLabel显示在JButton之上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17058159/

相关文章:

java - 如何按顺序运行2个.java类? ( Selenium 与Eclipse)

java - 警报对话框不显示

java - Eclipse RCP 获取部件实例

c++ - Eclipse CDT-是否有办法在启动新启动之前杀死以前运行的启动?

java - 如何检查 Swing 应用程序是否正确使用 EDT(事件分配线程)

java - 对数组中的偶数和奇数进行排序

java - 为什么\u000a是一个坏字符?

eclipse - 网上免费的AspectJ代码示例

gwt - Java 独立应用程序的 GUI。我应该使用 SWT 还是 GWT?

c - Glade-GTK+ C语言: How to use FileChooserButton to get a filename?