gpt4 book ai didi

java - GridBagLayout 似乎锚定在底部,并扩展标签

转载 作者:太空宇宙 更新时间:2023-11-04 13:24:17 24 4
gpt4 key购买 nike

我是 GBL 新手,所以请原谅我的新手问题:

当我扩展窗口时,网格的 Y 尺寸变得更大,这是我不希望的,并且我的标签也在 x 轴上增长。这是我希望窗口随时呈现的样子: Screenshot

但它看起来像这样: Screenshot

这是我的代码:

package fr.oxodao.youtump3;

import javax.swing.*;
import java.awt.*;

/**
* Created by Nathan J. <Oxodao> on 27/09/15 @ 13:26.
*/
public class PanelAdd extends JPanel {
public JTextField destination;

public PanelAdd() {
setLayout(new BorderLayout());
JComboBox serviceChoose = new JComboBox(Main.downloadServices.toArray());
JPanel topPan = new JPanel(new BorderLayout());
topPan.add(serviceChoose, BorderLayout.CENTER);
topPan.setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 10));
serviceChoose.setSelectedIndex(0);
add(topPan, BorderLayout.NORTH);

JPanel centerPanel = new JPanel(new BorderLayout());
JPanel chooseFolder = new JPanel(new BorderLayout());
{
chooseFolder.add(new JLabel("Emplacement: "), BorderLayout.WEST);
chooseFolder.add(destination = new JTextField(/** @TODO Load From Database **/), BorderLayout.CENTER);
JButton select = new JButton("Choisir");
select.addActionListener(e -> {
});
chooseFolder.add(select, BorderLayout.EAST);
}
centerPanel.add(chooseFolder, BorderLayout.NORTH);

JPanel id3 = new JPanel(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.gridwidth = 1;
c.anchor = GridBagConstraints.LINE_START;
c.fill = GridBagConstraints.NONE;
JLabel labL1 = new JLabel("Lien youtube: ");
c.gridx = 0;
c.gridy = 0;
c.weightx = 1.0;
c.weighty = 1.0;
id3.add(labL1, c);
JLabel lab1 = new JLabel("Titre: ");
c.gridy = 1;
id3.add(lab1, c);

JLabel lab2 = new JLabel("Auteur: ");
c.gridy = 2;
id3.add(lab2, c);

JLabel lab3 = new JLabel("Album: ");
c.gridy = 3;
id3.add(lab3, c);

JLabel lab4 = new JLabel("/");
c.gridx = 3;
id3.add(lab4, c);

JTextField fLien = new JTextField();
JTextField fTitre = new JTextField();
JTextField fAuteur = new JTextField();
JTextField fAlbum = new JTextField();
JTextField fPiste = new JTextField();
JTextField fTotal = new JTextField();

c.fill = GridBagConstraints.HORIZONTAL;
c.gridy = 0;
c.gridx = 1;
c.gridwidth = GridBagConstraints.REMAINDER;
id3.add(fLien, c);
c.gridy = 1;
id3.add(fTitre, c);

c.gridy = 2;
id3.add(fAuteur, c);

c.gridy = 3;
c.gridwidth = 1;
id3.add(fAlbum, c);

c.gridx = 2;
id3.add(fPiste, c);

c.gridx = 4;
id3.add(fTotal, c);

id3.setBorder(BorderFactory.createEmptyBorder(15, 0, 0, 0));
centerPanel.add(id3, BorderLayout.CENTER);
centerPanel.setBorder(BorderFactory.createEmptyBorder(0, 15, 5, 15));

JPanel btmBtn = new JPanel();
btmBtn.setLayout(new GridBagLayout());
c = new GridBagConstraints();

JButton resetBt = new JButton("Effacer tout");
resetBt.addActionListener(e -> {
});
c.fill = GridBagConstraints.BOTH;
c.anchor = GridBagConstraints.FIRST_LINE_START;
c.gridx = 0;
c.gridy = 0;
c.weightx = 1.0;
c.weighty = 1.0;
c.insets = new Insets(0, 0, 0, 1);
btmBtn.add(resetBt, c);

JButton addBt = new JButton("Ajouter aux téléchargements");
addBt.addActionListener(e -> {
});
c.anchor = GridBagConstraints.LINE_END;
c.gridx = 1;
c.insets = new Insets(0, 2, 0, 0);
btmBtn.add(addBt, c);

add(btmBtn, BorderLayout.SOUTH);
add(centerPanel, BorderLayout.CENTER);
}
}

提前致谢

最佳答案

您可以使用:

c.weighty = 0.0;

并且您的网格不会与其父网格一起垂直增长。

要将面板保持在父容器的顶部,请使用:

centerPanel.add(id3, BorderLayout.NORTH);

关于java - GridBagLayout 似乎锚定在底部,并扩展标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32807675/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com