- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将第一个 GridBagLayout
设置为主 JPanel
。在此面板中,还使用此布局添加了其他十个面板(外部约束)。子面板包含大量文本,应使用新布局和 innerConstraints
将其放置在 WEST 位置。但他们居中。
经过一些测试,我发现文本/图像放置在西边,但前提是outerConstraints
没有水平填充白色面板。问题是,我无法删除此命令,因为我需要每个面板都具有相同的宽度。
是否有可能允许 outerConstraints
填充并使其嵌套的 GridBagLayout
将文本定位在左侧?
setLayout(new GridBagLayout());
GridBagConstraints outerConstraints = new GridBagConstraints();
outerConstraints.insets = new Insets(5, 5, 5, 5);
outerConstraints.fill = GridBagConstraints.HORIZONTAL; // seems to be reason, but needed.
for (int i = 0; i < 10; i++) {
outerConstraints.gridx = i % 2;
outerConstraints.gridy = i / 2;
JPanel agentVisitCard = new JPanel();
add(agentVisitCard, outerConstraints);
GridBagConstraints innerConstraints = new GridBagConstraints();
innerConstraints.anchor = GridBagConstraints.WEST; //fails
innerConstraints.insets = new Insets(5, 5, 5, 5);
GridBagLayout layout = new GridBagLayout();
agentVisitCard.setLayout(layout);
(...)
JLabel label = new JLabel("Agent " + (i + 1) + ":");
innerConstraints.gridx = 0;
innerConstraints.gridy = 0;
agentVisitCard.add(label, innerConstraints);
最佳答案
anchor 不起作用的原因是组件没有重量。否则,给予组件的面积只是所需的最小尺寸,即组件本身的尺寸,而不会更大。
这里引用 swing tutorials (在weightx,weighty部分下)解释它:
Unless you specify at least one non-zero value for weightx or weighty, all the components clump together in the center of their container. This is because when the weight is 0.0 (the default), the GridBagLayout puts any extra space between its grid of cells and the edges of the container.
默认情况下,weightx 和weighty 为0,这就是它不适合您的原因。由于您只想水平锚定它,因此将weightx 设置为非零值可以使其工作。如果您想要垂直 anchor ,则还需要设置权重。
如何使用weightx和weighty值的解释如下:
Generally weights are specified with 0.0 and 1.0 as the extremes: the numbers in between are used as necessary. Larger numbers indicate that the component's row or column should get more space.
尽管他们建议使用 0.0 到 1.0 之间的值,但这不是必需的。任何 double 值都可以。如果有多个组件,重要的是组件之间的重量比。
关于java - Swing:GridBagLayouts anchor 无法嵌套在其他 GridBagLayout 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32592709/
我正在将第一个 GridBagLayout 设置为主 JPanel。在此面板中,还使用此布局添加了其他十个面板(外部约束)。子面板包含大量文本,应使用新布局和 innerConstraints 将其放
我的任务是使用 Swing 在 Java 中设计一个基本的 UI,但我无法完成它的布局。我想创建类似于 this 的东西但是我使用 GridBagLayout 的尝试导致了一些非常困惑的事情。谁能提供
我有以下代码 GridBagConstraints c = new GridBagConstraints(); c.gridx=0; c.gridy=0; c.gridwidt
我正面临 Java GridBagLayout 的问题。 运行以下代码: import java.awt.GridBagConstraints; import java.awt.GridBagLayo
我正在使用 GridBagLayout到(当前)显示两行。我知道这种布局对于这项任务来说太过分了,但我正在努力学习如何使用它。问题是我已将两个面板添加到两个单独的行中,并且内容周围存在巨大差距(请参见
我正在使用 swing 尝试制作一个垄断板。我试图将板上的属性/空间制作为单独的 JPanel,它们可以有自己的实现、信息等,但我在空间的形状方面遇到了一些问题。我正在使用 GridBagLayout
我正在开发我的第一个应用程序来练习布局管理器,我开始学习 GridBagLayout,我想创建一个带有 Logo 和登录框的登录窗口。 目前我的应用程序如下所示: (来源:gyazo.com) 我觉得
我正在开发的 UI 显示一个面板,让用户选择电影并播放。有播放、暂停等控件。 布局似乎是我想要的。该面板使用 GridBagLayout。第 2 行显示状态消息的文本区域,第 3 行显示带有按钮和进度
我有一个面板,用作卡片布局的一部分。该面板使用 GridBagLayout。我向其中添加了两个组件:填充设置为 BOTH 的 JTextArea 和填充设置为水平的 JTextField。它们只占据水
我的问题是当我不乱用 ipadx 和 ipady 时。我的按钮粘在一起,但当我摆弄 ipadx 和 ipady 时,我发现第三个按钮将一个单元格移开。为什么以及如何解决这个困惑?代码: public
我想缩短我的文本字段,这样它就不会延伸到我的 jframe 的末尾,所以它现在看起来是这样的: 如何控制文本字段的宽度,使其不会像我尝试过 setPreferedSize() 和 setSize()
尝试将我的 JTable 旁边的表单与 GridBagLayout 对齐,但我正在努力将我的组件放在面板顶部。我需要价格标签和字段位于商品标签和字段下方,但我无法将其从面板底部移动。 如果我使用 an
我正在使用 GridBagLayout 测试一个简单的表单,但遇到了一些对齐问题。我想在顶部“Item”行下方的行上放置两个小字段,但长文本字段导致其下方的小文本字段无法正确对齐。 这是它当前正在执行
是否可以有一个像这张图一样的GridBagLayout? (本例中为多列 4 行 + 一列 5 行) 计算器的GridBagLayout: 最佳答案 对于最后一列,创建一个使用 GridLayout
我正在尝试学习如何使用JAVA的GUI库Swing。我想做的是将 2 个磁盘图像排成一行,并将 3 个打印机图像放在它们下面的行中。每个磁盘镜像应位于两个打印机镜像的中间。我(不幸的是)正在使用 Gr
我有一个 JPanel ,其中 GridBagLayout 作为布局管理器,我正在尝试进行这种安排: 忽略边框的额外深蓝色空间。 我总共有 5 列和 3 行,所有组件都将 setPreferredSi
如何为 GridBagLayout 中的不同行设置不同的颜色? P.S:我无法根据客户要求在我的应用程序中使用 swing。 最佳答案 对于 AWT 也适用 setBackground(Color)
我在 GridBagLayout 中有一个 3 * 6 的 JButtons 数组。但由于每个按钮的文本长度可能有所不同,因此每列按钮的宽度略有不同。如何使它们具有相同的宽度? 这是代码: for (
请看下面的代码 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class TestForm exte
我正在为一些按钮设置布局。我想在中间有 2 个按钮,在最后有一个。我有两个在中间,但最后一个在一边。如何将“后退”按钮设置在其他按钮下方。 (我对此进行了研究)。 public class Optio
我是一名优秀的程序员,十分优秀!