有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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的面板

这段代码可以工作,但这是结果 enter image description here

如何删除面板之间自动创建的空间


共 (2) 个答案

  1. # 1 楼答案

    你应该pack()你周围的面板,或者将高度设置为所需的值

  2. # 2 楼答案

    How do I remove the space that is automatically created between the panels?

    对面板使用不同的布局管理器。GridLayout将始终调整组件的大小,以占用面板中的所有空间

    也许你可以使用BoxLayout或GridBagLayout。还可以使用不同的布局管理器嵌套面板,以获得所需的效果

    阅读Swing教程中关于Layout Managers的部分,了解更多信息和示例