- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 MigLayout
编写一些用于测量目的的 Swing 应用程序。我正在努力消除不必要的差距。
我已经注意到由于顶部的句子而存在间隙。然而,当我删除它时,它看起来很好。
该问题在下图中可见:
我添加句子的方式是:
add(text, "wrap, center, gap top 20");
以及我添加按钮的方式:
String wrap = shouldWrap(i) ? "wrap" : "";
this.add(button, "gapbefore 15, width 50, height 20, " + wrap);
任何人都可以帮我解释为什么会发生这种情况以及如何消除与当前句子之间的差距吗?
////////////编辑
我想使用我当前的基础设施,我在 MigLayout
中启用了 Debug模式,我看到了类似这样的内容:
我想知道为什么行中每个第一个组件周围的边框大小设置为与“请指定您对给定陈述的同意程度”句子的大小相匹配。
有没有办法使用MigLayout
为每个组件禁用该选项?
最佳答案
您只需使用约束“split x”,它将行分成挤在一起的 X 个部分:
不拆分:
public class SentenceExample {
public static void main(String[] args) {
JFrame frame = new JFrame("JFrame Example");
JPanel panel = new JPanel();
panel.setLayout(new MigLayout());
panel.add(new JLabel("Please, specify how much you agree with the given statements"), "wrap");
panel.add(new JButton("1"));
panel.add(new JButton("2"));
panel.add(new JButton("3"));
panel.add(new JButton("4"));
panel.add(new JButton("5"));
panel.add(new JButton("6"));
panel.add(new JButton("7"));
panel.add(new JButton("8"));
panel.add(new JButton("9"));
panel.add(new JButton("10"));
frame.add(panel);
frame.setSize(900, 300);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
看起来像这样:
拆分:
如果您更改第一个 JButton 行:
panel.add(new JButton("1"));
对此:
panel.add(new JButton("1"), "split 10");
您的 GUI 将如下所示:
第一个带有“split 10”约束的按钮安排了 10 个“槽”,按钮本身和接下来的 9 个元素将被放入其中。
对每行中的第一个按钮(即带有循环)执行此操作,您将获得所需的外观。
<小时/>编辑:如果对每个第一个按钮使用循环太麻烦,您可以对面板布局本身使用列约束,使其具有 7 列,并使句子跨越几列。看到这里http://www.miglayout.com/QuickStart.pdf了解如何创建列约束。
“split”可能更容易使用,但列约束可能更清晰。
关于java - Swing MigLayout - 无法避免不必要的间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40251297/
我正在使用 this solution在二进制矩阵中找到与图像边界对齐的矩形。假设现在我想找到一个不与图像边框对齐的矩形,并且我不知道它的方向;找到它的最快方法是什么? 为了示例,让我们寻找一个仅包含
else: 行在这个 Python 程序中是否正确/必要? from random import randrange for n in range(10): r = randrange(0,1
在 TDPL 7.1.5.1 中讨论了将 Widget w2 分配给 w1 并且作者指出“将 w2 逐个字段分配给 w1 会将 w2.array 分配给 w1.array——一个简单的数组边界分配,而
我是一名优秀的程序员,十分优秀!