Java 如何让JLabel在JButton上显示?
我有一个JLabel,它是JButton的ontop,但它不会显示在ontop上。当JButton的代码被注释掉时,会显示JLabel,这意味着它在那里,但在底部。有没有办法显示JButton的JLabel ontop 任何帮助都会很棒。谢谢大家!Java 如何让JLabel在JButton上显示?,java,eclipse,user-interface,jbutton,jlabel,Java,Eclipse,User Interface,Jbutton,Jlabel,我有一个JLabel,它是JButton的ontop,但它不会显示在ontop上。当JButton的代码被注释掉时,会显示JLabel,这意味着它在那里,但在底部。有没有办法显示JButton的JLabel ontop 任何帮助都会很棒。谢谢大家! import java.awt.*; import javax.swing.*; public class TestingLabelsOverButtons extends JFrame { publ
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仍然需要可见。根据组件的顺序来绘制组件。基本上,添加的最后一个组件是先绘制的 因此,您可以通过以下方式实现您的目标:
c.add(button);
c.add(label);
尽管如此,我同意这些评论。你想干什么?也许有更好的解决办法。使用setBounds()来定位和调整组件的大小几乎从来都不是一个好主意
我需要在我的游戏中,当按钮被点击时,一个JLabel将显示在按钮的顶部,以显示一个添加的“分数”
如果要强制用户单击按钮以显示分数,则可能需要使用
JOptionPane
来显示标签。否则,标签将如何消失?强制用户单击同一个按钮不是一个很好的UI。根据组件的顺序来绘制组件。基本上,添加的最后一个组件是先绘制的
因此,您可以通过以下方式实现您的目标:
c.add(button);
c.add(label);
尽管如此,我同意这些评论。你想干什么?也许有更好的解决办法。使用setBounds()来定位和调整组件的大小几乎从来都不是一个好主意
我需要在我的游戏中,当按钮被点击时,一个JLabel将显示在按钮的顶部,以显示一个添加的“分数”
如果要强制用户单击按钮以显示分数,则可能需要使用
JOptionPane
来显示标签。否则,标签将如何消失?强制用户单击同一按钮不是一个很好的UI。“为什么?”-JButton
同时支持文本和图标,那么您想要实现什么呢?1)也许这实际上需要一个工具提示。2) setLayout(空)代码>javagui可能必须在许多平台上工作,在不同的屏幕分辨率上&使用不同的plaf。因此,它们不利于部件的精确放置。为了组织一个健壮的GUI组件,请使用布局管理器或它们的组合,以及空白区域的布局填充和边框。您的方法setBounds()都指向相同的位置。为了澄清,我需要在我的游戏中使用此方法,当单击按钮时,按钮顶部将显示一个JLabel以显示添加的“分数”。在我的游戏中,JLabel将比JButton小,因此JButton仍然需要可见。为什么不“JButton button=newjbutton(“标签”);“?“为什么?”-JButton
同时支持文本和图标,那么您想要实现什么呢?1)这可能实际上需要工具提示。2)setLayout(null)
Java GUI可能必须在多个平台上工作,在不同的屏幕分辨率和使用不同的PLAF。因此,它们不利于组件的精确放置。要为一个健壮的GUI组织组件,请使用布局管理器或其组合,以及布局填充和空白边框。您的方法是d setBounds()都指向相同的位置。为了澄清,我需要在我的游戏中使用此按钮,当单击按钮时,按钮顶部会显示一个JLabel,以显示添加的“分数”。在我的游戏中,JLabel将比JButton小一个正方形,因此JButton仍然需要可见。为什么不?”JButton按钮=新JButton(“标签”);“我有一个JPanel,它是一个16个JButel的网格(4个4个)。当需要增加一个分数时,弹出的一个弹出窗口将显示在中间的面板上,显示增加的分数。弹出窗口将显示在中间的4个按钮的顶部,所以我希望它在按钮的顶部是可见的(但是按钮仍然应该被看见)。。即使在按钮后添加标签,我似乎也无法做到这一点。分数更新时会创建弹出窗口,并使用计时器调用不同的方法删除JLabel。与其说是用户必须单击“确定”的选项窗格,不如说是图形更新“。请阅读上的Swing教程。您可以使用玻璃窗格来完成此操作,或者使用JLayeredPane更好。我没有玻璃窗格或任何东西的背景,但我希望以尽可能简单的方式完成此操作。所有这些组件都是位于jframe上的jpanel的一部分。我想在jpanel上的按钮上显示标签。我有一个jpanel,它是由16个JButton(4乘4)组成的网格。当需要添加分数时,弹出窗口将在显示添加的分数的面板的中间。弹出窗口将显示在中间4个按钮的顶部,因此我希望它在按钮顶部可见(但按钮仍应可见)。我似乎无法做到这一点,即使在按钮后添加标签。更新分数时会创建弹出窗口,并使用计时器调用不同的方法删除JLabel。它更像是一个图形更新,而不是用户必须单击“确定”的选项窗格。请阅读上的Swing教程。您可以使用玻璃窗格来完成此操作,或者使用JLayeredPane更好。我没有玻璃窗格或任何东西的背景,但我希望以尽可能简单的方式完成此操作。所有这些组件都是位于jframe上的jpanel的一部分。我想在jpanel上的按钮上显示标签。