java JPanel在子面板之间创建空白
我正在为家庭作业开发一个应用程序。这是我的密码
JLabel queryHandlerL = new JLabel("Create php to handle query results", JLabel.CENTER);
final JCheckBox queryHandlerCB = new JCheckBox();
JPanel checkBoxPanel = new JPanel(new FlowLayout());
checkBoxPanel.add(queryHandlerL);
checkBoxPanel.add(queryHandlerCB);
// Query Panel
// set image
picLabelQuery = new JLabel("",JLabel.LEFT);
picLabelQuery.setIcon(currentPicForm);
JPanel queryPanel = new JPanel();
final JButton queryButton = new JButton("Insert a query");
queryPanel.add(queryButton);
queryPanel.add(picLabelQuery);
// Panel create
final JButton createButton = new JButton("Create");
JPanel createPanel = new JPanel(new FlowLayout(FlowLayout.TRAILING));
createPanel.add(createButton);
JPanel finalPanel = new JPanel(new GridLayout(0, 1,5,2));
finalPanel.add(queryPanel);
finalPanel.add(checkBoxPanel);
finalPanel.add(createPanel);
finalPanel.setBorder(BorderFactory.createTitledBorder("SQL connection"));
setLayout(new GridBagLayout());
add(finalPanel);
我有一个CardLayout
,这是这个CardLayout
里面的一个Window
。最后一个add(finalPanel)
是指CardLayout
的面板
这段代码可以工作,但这是结果
如何删除面板之间自动创建的空间
# 1 楼答案
你应该
pack()
你周围的面板,或者将高度设置为所需的值# 2 楼答案
对面板使用不同的布局管理器。GridLayout将始终调整组件的大小,以占用面板中的所有空间
也许你可以使用BoxLayout或GridBagLayout。还可以使用不同的布局管理器嵌套面板,以获得所需的效果
阅读Swing教程中关于Layout Managers的部分,了解更多信息和示例