我有一个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仍然需要可见。
答案 0 :(得分:4)
根据组件的ZOrder摆动涂料组件。基本上,添加的最后一个组件首先被绘制。
所以你可以做到你想做的事情:
c.add(button);
c.add(label);
虽然,我同意这些意见。你想做什么?可能有更好的解决方案。使用setBounds()定位和调整组件大小几乎绝不是一个好主意。
我的游戏需要这个,当点击按钮时,按钮顶部会显示一个JLabel,以显示添加的“得分”。
如果您要强制用户单击按钮以显示分数,那么您应该使用JOptionPane
来显示标签。否则标签将如何消失?强制用户点击相同的按钮不是一个非常好的用户界面。