Eclipse WindowBuilder,重叠的JPanels
问题描述:
我正在尝试重叠JPanel
实例。将面板以完全相同的位置和大小直接放在另一个面板上。每次执行此操作时,它将另一个面板移到另一侧或下面,前一个面板在另一个更大的面板内部,并且其中有按钮。
我该怎么做?请记住,它使用的是Window Builder工具。
第 1 个答案:
你可能还想看看这里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; } }
我不明白exactly到底在做什么。如果你能用101个字来介绍exactly:到底是什么它如何与用Java编写的应用程序交互?它与服务器一起使用吗?它是一个独立程序吗?请解释一下骆驼是什么。