当前位置: 首页 > 面试题库 >

Eclipse WindowBuilder,重叠的JPanels

江鸿羲
2023-03-14
问题内容

我正在尝试重叠JPanel实例。将面板以完全相同的位置和大小直接放在另一个面板上。每次执行此操作时,它将另一个面板移到另一侧或下面,前一个面板在另一个更大的面板内部,并且其中有按钮。

我该怎么做?请记住,它使用的是Window Builder工具。


问题答案:

你可能还想看看这里OverlayLayout看到的东西。它不包括在常规画廊中,但可能会很有趣。

重叠样本

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.OverlayLayout;

/** @see http://stackoverflow.com/a/13437388/230513 */
public class OverlaySample {

    public static void main(String args[]) {
        JFrame frame = new JFrame("Overlay Sample");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel = new JPanel();
        panel.setLayout(new OverlayLayout(panel));
        panel.add(create(1, "One", Color.gray.brighter()));
        panel.add(create(2, "Two", Color.gray));
        panel.add(create(3, "Three", Color.gray.darker()));
        frame.add(panel, BorderLayout.CENTER);
        frame.pack();
        frame.setLocationByPlatform(true);
        frame.setVisible(true);
    }

    private static JLabel create(final int index, String name, Color color) {
        JLabel label = new JLabel(name) {
            private static final int N = 64;

            @Override
            public boolean isOpaque() {
                return true;
            }

            @Override
            public Dimension getPreferredSize() {
                return new Dimension(index * N, index * N);
            }

            @Override
            public Dimension getMaximumSize() {
                return new Dimension(index * N, index * N);
            }
        };
        label.setHorizontalAlignment(JLabel.RIGHT);
        label.setVerticalAlignment(JLabel.BOTTOM);
        label.setBackground(color);
        label.setAlignmentX(0.0f);
        label.setAlignmentY(0.0f);
        return label;
    }
}


 类似资料:
  • 问题内容: 我已经看到了许多解决方案来识别日期范围重叠的记录,还有其他一些合并重叠范围的示例。 但是,我对显示仅重叠发生范围的结果感兴趣。实际上,我有3个ProductID(并且只有3个将存在),并且我试图为每个客户查找所有3个日期的日期范围。 问题答案: 答案如下: 这是使用自连接来计算每个产品上不同产品的数量。您需要三种截然不同的产品,因此该子句正在执行此操作。 有三种截然不同的产品,直到其中

  • 我知道如何检查其中两个圆是否重叠(它们中心之间的距离小于直径)。我可以对每对圆执行此检查,但我想知道是否有更好的算法(比)更快)。 编辑 圆圈的数目通常是100个左右,重叠不会经常发生。

  • 问题内容: 我之前曾问过一个问题,但没有收到任何回应,因此我正在尝试 。 我需要在 Android 3.0的Motorola Xoom上绘制带有一些随附标签和图形的2D图片。尽管我只需要用 SurfaceView(Canvas)或GLSurfaceView即可完成操作,但我真的很想同时使用这两者, 因为使用GLSurfaceView可以更快地渲染,而 使用SurfaceView可以更轻松地标记和图

  • 我有一个SVG元素,它包含两个尺寸和位置完全相同的子元素。两者唯一的区别是它们的颜色:第一个是红色,第二个是绿色。我注意到,即使绿色的圆圈在红色的上面,你仍然可以看到在圆圈的边缘有一点颜色偏移。我有什么办法可以避免这种颜色的变化吗? 下面是一张屏幕截图,显示了有红圈和没有红圈的情况: 这里还有我用来复制这个的小提琴。 null 欢迎任何不同的想法。

  • 我有一个应用程序通过微米-jmx将泛米修斯的运输指标运送到普罗米修斯,我无法将应用程序更改为使用千分尺普罗米修斯。因此,所有参数化指标都不是普罗米修斯标签,而是直接编码到指标名称中。 i、 e.不是度量的形式为。 现在,假设我想在grafana中创建一个按类型分组(堆叠/重叠)的请求计数图。有没有任何方法可以在没有标签和这种格式的度量的情况下实现这一点?我已经设法构造了grafana变量,从度量名

  • 我在同一个JPanel上有一个JButton和一个Point(由飞跃运动控制的运动)。但是,它们与顶部的JButton重叠。 有没有办法让我的点始终在JPanel应用程序窗口中的顶部? 这是一个代码片段: