Java OverlyLayout不';似乎没有分层

Java OverlyLayout不';似乎没有分层,java,swing,layout,overlay,Java,Swing,Layout,Overlay,我试图使用OverlayLayout将一小段文本与JTabbedPane的顶部选项卡对齐,但它似乎不起作用 值得注意的是,我使用的是一个JLayeredPane,但是我需要TabbedPane来填充父组件,而且如果没有一些欺骗,它似乎无法正常工作 不管怎么说,似乎当你不去理睬路线时,行为就如预期的那样工作(按钮在背景上浮动)。但是,当使用任何类型的对齐方式时(我的理解是,这就是使用布局管理器设置位置的方式),它会将背景缩小到按钮应位于的边缘 下面是一些示例代码 import java.awt.C

我试图使用OverlayLayout将一小段文本与JTabbedPane的顶部选项卡对齐,但它似乎不起作用

值得注意的是,我使用的是一个JLayeredPane,但是我需要TabbedPane来填充父组件,而且如果没有一些欺骗,它似乎无法正常工作

不管怎么说,似乎当你不去理睬路线时,行为就如预期的那样工作(按钮在背景上浮动)。但是,当使用任何类型的对齐方式时(我的理解是,这就是使用布局管理器设置位置的方式),它会将背景缩小到按钮应位于的边缘

下面是一些示例代码

import java.awt.Color;
import java.awt.Container;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.OverlayLayout;

public class Test {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        Container c = frame.getContentPane();
        c.setLayout(new OverlayLayout(c));

        JButton button = new JButton("Test");
        JPanel background = new JPanel();
        background.setBackground(Color.BLUE);
        background.setSize(500, 500);
        // toggle the following between 0 and 100 to see the described behavior
        background.setAlignmentX(100);

        frame.add(background);
        frame.add(button);

        frame.pack();
        frame.setSize(800, 800);
        frame.setVisible(true);

    }
}

如果您有任何建议,我们将不胜感激。

您可以使用
setGlassPane
方法将窗格置于框架中的其他窗格之上。签入

您可以使用方法
setGlassPane
将窗格置于框架中的其他窗格之上。办理登机手续
  • 错误在于使用setBound(),这对LayoutManager来说是无用的,而且是相反的

  • 使用about
    setMaximumSize()


  • 如果您真的想创建覆盖另一个组件的JComponents,请查看

    • JLayeredPane-->过时,最多只能使用第6个分层窗格

    • JXLayer for Java6或直接实现为Java7中的JLayer

    • 对于简单的覆盖,您也可以使用GlassPane

        • 错误在于使用setBound(),这对LayoutManager来说是无用的,而且是相反的

        • 使用about
          setMaximumSize()


        如果您真的想创建覆盖另一个组件的JComponents,请查看

        • JLayeredPane-->过时,最多只能使用第6个分层窗格

        • JXLayer for Java6或直接实现为Java7中的JLayer

        • 对于简单的覆盖,您也可以使用GlassPane


        “如果您有任何建议,我们将不胜感激。”为了更快地获得更好的帮助,请发布一条消息。“尝试使用OverlyLayout将一小段文本与JTabbedPane的顶部选项卡对齐”为什么?文本是什么?它与选项卡有什么关系?我将修改我的问题。谢谢lead选项卡是一个图形,文本用于显示当前鼠标坐标或其他相关信息。客户要求它在那里(看起来确实不错)“如果有任何建议,我们将不胜感激。”为了更快地获得更好的帮助,请发布一条消息。“尝试使用OverlyLayout将一小段文本放置在JTabbedPane的顶部选项卡上”为什么?文本是什么?它与选项卡有什么关系?我将修改我的问题。谢谢lead选项卡是一个图形,文本用于显示当前鼠标坐标或其他相关信息。客户要求它在那里(看起来确实不错)我喜欢GlassPane,简单但没有任何性能问题,但有时疯狂+1我喜欢GlassPane,简单但没有任何性能问题,但有时疯狂+1哇哦,setBounds()调用从以前的实验中潜入。移除它。我不完全确定setMaximumSize将如何帮助解决OverlyLayout问题。问题在于,组件的行为似乎就像我在使用常规布局管理器一样(它们不是层叠在一起的)。不过,我会调查其他建议。谢谢。您可以在版面管理器的可视指南中看到,setBounds()调用从上一个实验中悄悄进入。移除它。我不完全确定setMaximumSize将如何帮助解决OverlyLayout问题。问题在于,组件的行为似乎就像我在使用常规布局管理器一样(它们不是层叠在一起的)。不过,我会调查其他建议。谢谢。您可以在布局管理器的视觉指南中看到