GridBagLayout Java 中的边距/填充
Posted
技术标签:
【中文标题】GridBagLayout Java 中的边距/填充【英文标题】:Margin/padding in GridBagLayout Java 【发布时间】:2011-06-18 01:18:59 【问题描述】:是否可以在GridBagLayout
中为整行/列设置边距/填充?但是,我在约束对象上使用插图,使用这种方法我需要在每个组件上从底部设置填充。
是否可以填充JFrame
中的所有内容?因为现在每个组件都与框架对齐。
constraints.weightx = 2;
constraints.weighty = 1;
constraints.fill = GridBagConstraints.BOTH;
addComponent(this, layout, constraints, questionPanel = new QuestionPanel(), 0, 0, 1, 1);
constraints.weightx = 1;
constraints.weighty = 1;
constraints.fill = GridBagConstraints.BOTH;
addComponent(this, layout, constraints, categoryPanel = new CategoryPanel(), 0, 1, 1, 1);
constraints.weightx = 1;
constraints.weighty = 0;
constraints.fill = GridBagConstraints.HORIZONTAL;
addComponent(this, layout, constraints, answerPanel = new AnswerPanel(), 1, 0, 2, 1);
constraints.weightx = 1;
constraints.weighty = 2;
constraints.fill = GridBagConstraints.BOTH;
addComponent(this, layout, constraints, tabPane = new JTabbedPane(), 2, 0, 2, 1);
constraints.weightx = 1;
constraints.weighty = 0;
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.SOUTHEAST;
addComponent(this, layout, constraints, buttonPanel = new ButtonPanel(), 3, 1, 1, 1);
我正在使用私有方法 addComponent:
private void addComponent(Container context, GridBagLayout _layout, GridBagConstraints _constraints, Component component, int row, int column, int width, int height)
_constraints.gridx = column;
_constraints.gridy = row;
_constraints.gridwidth = width;
_constraints.gridheight = height;
_layout.setConstraints(component, _constraints);
context.add(component);
如何在单元格之间添加一些“空气(填充/边距)”?
【问题讨论】:
我会说是的,是的......但是,如果不查看某些代码,很难确定。你能发布一个sn-p吗?这会很有帮助,你的问题很笼统。 投反对票,因为有两个问题。 【参考方案1】:使用GridBagConstraints
类的inset
属性
例如:
GridBagConstraints c = new GridBagConstraints();
c.insets = new Insets(3,3,3,3);
希望这是您正在寻找的。p>
【讨论】:
【参考方案2】:据我所知,做第一个的唯一方法是为每个约束设置一个 Insets 对象...(手动编码布局显然不是为了便于Java :P)
但是有一种非常简单的方法来做第二个,而不用弄乱任何 Insets 或任何东西:将 contentPane 的布局设置为 FlowLayout,并带有您想要的任何垂直和水平间隙,将面板添加到 contentPane,而不是将所有内容添加到 contentPane 中,将其添加到您的新面板中。
【讨论】:
以上是关于GridBagLayout Java 中的边距/填充的主要内容,如果未能解决你的问题,请参考以下文章