我在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/