是否可添加一个JLabel上的另一个JLabel?谢谢。

有帮助吗?

解决方案

简短的回答是肯定的,作为一个 JLabel 是一个 Container, 此它可以接受一个 Component (a JLabel 是一个子类的 Component)加入 JLabel 通过使用 add 方法:

JLabel outsideLabel = new JLabel("Hello");
JLabel insideLabel = new JLabel("World");
outsideLabel.add(insideLabel);

在上述码, insideLabel 加入 outsideLabel.

但是,在视觉上,一个带有标签的文字"你好"显示,这样一个真的不能看到标签,被包含在标签。

因此,问题涉及下什么人真的想要实现通过添加标签上的另一个标签。


编辑:

从评论:

嗯,我想做什么是第一个, 阅读的某些部分的一个文件, 然后显示,在一个分数 jlabel.我认为的是 分裂分成3个部分,然后 使用标签的每三个。然后第二,我希望能够拖 分数,所以我以为我可以使用 另一个jlabel,并将3'mini jlabel'的大jlabel.我不 知道这是否会的工作,虽然..:|

这听起来像一个应该看看如何使用的布局管理人员。

一个良好的开端将是 使用的布局管理人员一些指导局的管理人员, 无论从 Java教程.

这听起来像一个 GridLayout 可能是一个选项可以完成的任务。

JPanel p = new JPanel(new GridLayout(0, 1));
p.add(new JLabel("One"));
p.add(new JLabel("Two"));
p.add(new JLabel("Three"));

在上述例子中, JPanel 由于使用 GridLayout 作为该局管理,并被告知要做一排的 JLabels.

其他提示

在回答你原来的问题是肯定的因为任何组件都可以添加到一个容器中的原因。

您没有看到第二个标签的原因是因为在默认情况下将JLabel使用一个空的布局管理器和第二个标签的尺寸为(0,0),所以没有什么作画。因此,所有你需要做的是设置第二个标签的边界和远离你去。

您不能使用布局管理器,如果你想拖动组件,因为只要你调整框架等,布局管理器将被调用和组件将被重新定位,基于组件的布局管理器。

它的布局的问题。 你可以做,使用空布局(具有硬编码的位置)或具有自定义布局。

您可以使用JLayeredPane并设置它的边框无边框。

可以通过使用水平或垂直间隙(hgap指定,vgap)布局结果的属性添加把它们彼此的上面 JPanel p = new JPanel(new GridLayout(2, 1,-40,0)); //the 40 is the hgap , make it the same with the label height .

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top