将特定JPanel子项设置为忽略布局管理器

时间:2015-06-21 22:55:48

标签: java swing layout-manager gridbaglayout

我正在制作一个简单的GUI,其中GridBag布局管理器下有多个JPanel。问题是我想通过在GridBag布局中移动子JPanels来添加拖放功能,但无论出于何种原因,似乎setLocation()不起作用。我怀疑布局管理器正在干扰这一点。我不想完全取出布局管理器,因为我需要它来帮助组织元素,所以有没有办法设置一些特定的元素来忽略布局管理器?

1 个答案:

答案 0 :(得分:0)

只需在GridBag布局中添加一个带有透明背景的新jPanel(如果它不是透明的,使用setOpaque(false)),并将其布局设置为null:

myPanel.setLayout(null);

另外,将其大小设置为适当的值,因为默认情况下,null布局会缩小为没有坐标的任何内容。

myPanel.setMinSize(int x, int y);

添加到覆盖jPanel的任何组件都不会受到布局的影响,并且可以自由移动。