设置特定的 JPanel 子项以忽略布局管理器
Setting Specific JPanel Child to Ignore Layout Manager
我正在制作一个简单的 GUI,其中在 GridBag 布局管理器下有多个 JPanel。问题是我想通过在 GridBag 布局中的子 JPanel 周围移动来添加拖放功能,但无论出于何种原因,它似乎 setLocation() 不起作用。我怀疑布局管理器正在干扰这一点。我不想完全去掉布局管理器,因为我需要它来帮助组织元素,那么有没有办法设置一些特定的元素来忽略布局管理器?
只需在您的 GridBag 布局中添加一个具有透明背景的新 jPanel(如果默认情况下不透明,请使用 setOpaque(false)
),并将其布局设置为空:
myPanel.setLayout(null);
此外,将其大小设置为适当的值,因为 null 布局默认情况下会收缩为无坐标。
myPanel.setMinSize(int x, int y);
添加到叠加 jPanel 的任何组件都不会受到布局的影响,并且能够自由移动。
我正在制作一个简单的 GUI,其中在 GridBag 布局管理器下有多个 JPanel。问题是我想通过在 GridBag 布局中的子 JPanel 周围移动来添加拖放功能,但无论出于何种原因,它似乎 setLocation() 不起作用。我怀疑布局管理器正在干扰这一点。我不想完全去掉布局管理器,因为我需要它来帮助组织元素,那么有没有办法设置一些特定的元素来忽略布局管理器?
只需在您的 GridBag 布局中添加一个具有透明背景的新 jPanel(如果默认情况下不透明,请使用 setOpaque(false)
),并将其布局设置为空:
myPanel.setLayout(null);
此外,将其大小设置为适当的值,因为 null 布局默认情况下会收缩为无坐标。
myPanel.setMinSize(int x, int y);
添加到叠加 jPanel 的任何组件都不会受到布局的影响,并且能够自由移动。