gpt4 book ai didi

java - Eclipse WindowBuilder,重叠的 JPanel

转载 作者:行者123 更新时间:2023-12-03 23:19:36 27 4
gpt4 key购买 nike

我试图重叠 JPanel 实例。将一个面板直接放在另一个面板上,位置和尺寸完全相同。每次我这样做时,它都会将另一个面板移动到另一侧或下方,前一个面板位于另一个更大的面板内,并且其中有按钮。

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

最佳答案

您可能还想看看 OverlayLayout , 见过 here .不包含在常规gallery中, 但它可能很有趣。

Overlay Sample

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;
}
}

关于java - Eclipse WindowBuilder,重叠的 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13436787/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com