当前位置: 首页 > 知识库问答 >
问题:

控制与另一个单元格的单元格间距GridBagLayout

夹谷浩博
2023-03-14

我想要的是让第一个textField更靠近第一个jlabel,在第一个textField和第二个jlabel之间有一些空间,像这样:

JLabel:JTEXTFIELD-----(spaceeee)-------JLabel:JTEXTFIELD

但我所改变的一切都不能接近我想要的,你看:

    JLabel lblProtocolo = new JLabel("Protocolo:");
    JLabel lblDataEntrada = new JLabel("Data Entrada:");
    JTextField tfProtocolo = new JTextField(10);
    JTextField tfDataEntrada = new JTextField(10);
    JTextField soteste = new JTextField(10);
    JLabel soocupa = new JLabel();
    GridBagConstraints gbc = new GridBagConstraints();
    gbc.gridx = 0;
    gbc.gridy = 0;
    gbc.weightx = 1;
    gbc.weighty = 1;
    gbc.fill = GridBagConstraints.HORIZONTAL;
    gbc.insets = new Insets(10, 10, 10, 10);
    gbc.anchor = GridBagConstraints.NORTHWEST;
    panel2DistribuidorDistribuir.add(lblProtocolo,gbc);
gbc.gridx = 1;
    panel2DistribuidorDistribuir.add(tfProtocolo,gbc);

gbc.gridx = 2;
    panel2DistribuidorDistribuir.add(lblDataEntrada,gbc);

gbc.gridx = 3;
    panel2DistribuidorDistribuir.add(tfDataEntrada,gbc);

共有1个答案

赵修诚
2023-03-14

GBC.weightx=1;基本上是说组件希望占用100%的可用空间。

我要做的是从移除它开始...

您还可以使用GBC.insets来影响各个组件之间的距离...

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class GridBagLayoutTest100 {

    public static void main(String[] args) {
        new GridBagLayoutTest100();
    }

    public GridBagLayoutTest100() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                }

                JFrame frame = new JFrame("Testing");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new BorderLayout());
                frame.add(new TestPane());
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

    public class TestPane extends JPanel {

        public TestPane() {
            JLabel lblProtocolo = new JLabel("Protocolo:");
            JLabel lblDataEntrada = new JLabel("Data Entrada:");
            JTextField tfProtocolo = new JTextField(10);
            JTextField tfDataEntrada = new JTextField(10);

            setLayout(new GridBagLayout());
            GridBagConstraints gbc = new GridBagConstraints();
            gbc.gridx = 0;
            gbc.gridy = 0;
            gbc.insets = new Insets(4, 4, 4, 4);
            gbc.anchor = GridBagConstraints.WEST;

            add(lblProtocolo, gbc);
            gbc.gridx++;
            gbc.weightx = 1;
            add(tfProtocolo, gbc);

            gbc.anchor = GridBagConstraints.EAST;
            gbc.gridx++;
            add(lblDataEntrada, gbc);
            gbc.gridx++;
            gbc.weightx = 0;
            add(tfDataEntrada, gbc);            
        }
    }
}
 类似资料:
  • 问题内容: 我正在尝试创建一个表格,其中每个单元格具有背景颜色,并且它们之间具有空白。但我似乎在执行此操作时遇到了麻烦。 我尝试设置边距,但似乎没有效果。 如果我对填充执行相同的操作,则可以,但是在单元格之间没有间距。 有人可以帮我吗? 问题答案: 使用元素上的属性设置单元格之间的间距。 确保设置为(否则每个单元格之间将有一个单独的边框,而不是每个单元格之间可能会有间隔的单独边框)。

  • 我的excel工作表中有两个单元格,其中一个单元格包含如下字符串: 而另一个单元格有欧元货币,例如: 现在我想复制这两个值,即“总额”和“223.463.687€”,并将其复制到第三个单元格中。我使用的公式是这样的: 我得到以下结果: 但是我应该: 注: 货币的格式是德语格式,意思是“.”(小数点)和“,”(昏迷)扮演相反的角色。在德语格式中,“,”是小数点,在英语中是“。”。

  • 插入文字 插入链接 插入公式 插入日期 插入本地图片 自动过滤 冻结单元格 合并单元格 行单元格样式 列单元格样式

  • 我正在使用这种数据帧: 如果用户输入,,我需要显示和或\n 如果用户输入,,我需要显示和

  • null 如您所料,A3将导致。现在将A2的格式更改为会计,使用小数点后2位。A2现在读,但是基础值仍然是,所以A3仍然是。 VBA 制作一个新模块并添加以下函数: null 和具有相同的基础值,但和没有,尽管它们都是使用和的方法计算的。 ()中的表达式正在访问和的实际基础值。如何在VBA中访问这些值?

  • 总结: 在我的桌面应用程序中,我加载一个Jtable,当处于编辑模式时,如果我按选项卡,我需要将单元格的焦点放在下一个单元格上。 问题:当我编辑单元格的值,然后按Tab键时,焦点丢失。我在网上做了一些搜索,发现这是因为在每个选项卡上按Jtable会重新加载自己。 可能的解决方案我正在考虑的一个解决方案是获取我正在处理的单元格的索引,在全局变量中也是如此,然后按Tab键可以获取下一个单元格的索引,并