【发布时间】:2018-03-27 18:53:51
【问题描述】:
尽管在 Google 上搜索了很多次,但我被困在这上面很长一段时间,我不知道该怎么做。我的问题是,我有一个程序,其中有一个从 JFrame 获得的容器。问题是,我将 menuBar 正确放置在两个按钮的下方,但是当我最大化窗口时,它会出现一个令人讨厌的空白区域,我不想在那里。如果我不最大化窗口,则组件可以很好地放置,如下所示:
但是当我最大化窗口时,出现了烦人的空间(红色标记的那个):
我想要的是菜单栏和按钮,像第一张图片一样停留在那个角落。菜单栏和按钮的gridbaglayout代码如下:
//MenuBar
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.weightx = 0.5;
gbc.weighty = 0.0; // si no ponemos esto la barra NO se queda anclada en la esquina
gbc.gridx = 0;
gbc.gridy = 0;
//gbc.anchor = GridBagConstraints.NORTHWEST;
//gbc.gridwidth = 2;
//gbc.gridheight = 1;
menuBar.setBorder(BorderFactory.createLineBorder(Color.black));
pane.add(menuBar, gbc);
//buttons
gbc.gridx = 0;
gbc.gridy = 1;
gbc.anchor = GridBagConstraints.LINE_START;//reseteamos su valor
gbc.gridwidth = GridBagConstraints.REMAINDER; // con esto indicamos que va a ser el ultimo componente de esa fila
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.fill = GridBagConstraints.NONE;
gbc.gridwidth = 2;
gbc.gridheight = 1;
panel.setBorder(BorderFactory.createLineBorder(Color.black)); //luego quitar es para ver lo que ocupaba el panel
pane.add(panel, gbc);
【问题讨论】:
-
通过转发问题避免浪费人们的时间。你在上一个问题中得到了答案。您完全忽略了给出的建议,并且在这里重复了完全相同的建议。您获得了有关如何使用菜单的 Swing 教程的链接,因此您可以阅读该教程并复制演示代码和实验。
标签: java swing gridbaglayout