gpt4 book ai didi

java - MigLayout 中的 Span/Grow 错误?

转载 作者:搜寻专家 更新时间:2023-11-01 02:56:09 25 4
gpt4 key购买 nike

以下接近我想要的,并且符合我的期望:

import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

import net.miginfocom.swing.MigLayout;

public class MigBug extends JFrame {

public static void main(String args[]) {
MigBug migbug = new MigBug();
migbug.pack();
migbug.setVisible(true);
}

public MigBug() {
JPanel content = new JPanel();
content.setLayout(new MigLayout("fill, debug"));

content.add(new JLabel("Label 1"));
content.add(new JComboBox());

content.add(new JLabel("Label 2"));
content.add(new JTextField(25), "growx, wrap");

content.add(new JLabel("BIG"), "span, w :400:, h :200:, growy");

setContentPane(content);
}
}

但是,如果我进行以下更改:

content.add(new JLabel("BIG"), "span, w :400:, h :200:, grow");

即。将跨接组件更改为在 x 和 y 中增长,Label 1 单元格在 x 中增长,即使它不应该增长。

有谁知道我可以解决这个问题的方法吗?

最佳答案

找到了解决方法,但并不完全令人满意。根据this forum postthis forum post , MigLayout 从计算组件大小切换到计算涉及跨度的列大小。在布局约束中用“filly”替换“fill”,然后为应该允许增长的每一列添加带有“grow”的列约束似乎可以解决这个问题。

工作代码:

import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

import net.miginfocom.swing.MigLayout;

public class MigBug extends JFrame {

public static void main(String args[]) {
MigBug migbug = new MigBug();
migbug.pack();
migbug.setVisible(true);
}

public MigBug() {
JPanel content = new JPanel();
content.setLayout(new MigLayout("filly, debug", "[][grow][][grow]"));

content.add(new JLabel("Label 1"));
content.add(new JComboBox());

content.add(new JLabel("Label 2"));
content.add(new JTextField(25), "growx, wrap");

content.add(new JLabel("BIG"), "span, w :400:, h :200:, grow");

setContentPane(content);
}
}

关于java - MigLayout 中的 Span/Grow 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1159400/

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