我的问题是我想为我的项目制作更复杂的(对我来说)图形界面。首先,我使用以下代码的全屏模式:在全屏幕上使用GridBagLayout屏蔽组件
public class MainFrame extends JFrame
{
...
private Container container;
private GridBagLayout gbl;
public MainFrame()
{
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice dev = env.getDefaultScreenDevice();
dev.setFullScreenWindow(this);
setLayoutManager();
}
...
}
并且一切正常。 我做的下一步是添加两个JPanel。我想要使用的布局管理器是GridBagLayout。
private void setLayoutManager()
{
container = getContentPane();
gbl = new GridBagLayout();
container.setLayout(gbl);
}
private void addMenu()
{
MenuBar menu = new MenuBar();
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.BOTH;
gbc.ipady = 0;
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 1.0;
gbc.weighty = 0.05;
gbl.setConstraints(menu, gbc);
container.add(menu);
}
private void addWorkArea()
{
WorkArea area = new WorkArea();
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.BOTH;
gbc.gridx = 0;
gbc.gridy = 1;
gbc.weightx = 1.0;
gbc.weighty = 1.0;
gbl.setConstraints(area, gbc);
container.add(area);
}
而结果看起来像这样:
这里是my project:
为什么会出现在顶部的带状?
当我点击并拖动时,所有的应用程序都在移动。请帮帮我。对我来说填补所有空间摆脱JFrame移动是非常重要的。
1)为更好地帮助更快,张贴[SSCCE](http://sscce.org/)。 2)考虑使用嵌套布局。 3)在问题中添加问号。 –
设置布局后尝试设置全屏。也尝试设置布局到框架本身,而不是内容页面 –
我知道相当于“不这样做”的答案通常是不受欢迎的,但是... GridBagLayout必须是最难理解/使用。 有许多易于使用的布局管理器。例如,看看MigLayout。或者至少使用嵌套的BorderLayouts。 – GreyBeardedGeek