如何使用 MigLayout 在面板上绘制分隔符

2024-01-25

这是一个 MigLayout 新手问题。我想知道如何从标签末端跨面板宽度绘制分隔符。

这是我的示例代码:

package com.ndh.swingjunk;

import java.awt.*;
import javax.swing.*;
import net.miginfocom.swing.MigLayout;

class MyJFrame extends JFrame {
    public MyJFrame() {
        super();
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JLabel label = new JLabel("foo");
        label.setFont(new Font("Tahoma", Font.BOLD, 11));
        JSeparator separator = new JSeparator();
        JLabel anotherLabel = new JLabel("some other label");
        anotherLabel.setFont(new Font("Tahoma", Font.PLAIN, 11));
        JButton button1 = new JButton("button 1");
        JButton button2 = new JButton("button 2");
        JPanel panel = new JPanel(new MigLayout());
        panel.add(label);
        panel.add(separator, "growx, wrap");
        panel.add(anotherLabel);
        panel.add(button1);
        panel.add(button2);
        getContentPane().add(panel);
        pack();
    }
}

public class SeparatorLayoutQuestion {
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            @Override public void run() {new MyJFrame().setVisible(true);}});}}

结果如下:

这是非常蹩脚的。我希望分隔符从“Foo”的末尾延伸到面板的末尾,一直穿过按钮 2。


这对我有用,我必须使用“split”,以便标签和分隔符可以共享同一个单元格:

JPanel panel = new JPanel(new MigLayout());
panel.add(label, "split 2, span");
panel.add(separator, "growx, wrap");
panel.add(anotherLabel);
panel.add(button1);
panel.add(button2);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 MigLayout 在面板上绘制分隔符 的相关文章

随机推荐

  • 使用 process.start 打开文本文件

    在计算皮尔逊相关并将结果写入文本文件后 我一直试图从系统中打开一个文本文件 但到目前为止 由于某种原因 代码没有打开任何记事本文件 我尝试打开其他文件 它们可以工作很好 但 txt 文件没有专门打开 甚至 docx 文件也使用相同的代码打开
  • 允许递归构造函数可能有什么好处(如果有)?

    在 Java 中 构造函数不能是递归的 编译时错误 递归构造函数调用 假设我们没有这个限制 要记住的事情 构造函数的返回类型为 void 由于它是一个 void 方法 因此您无法利用递归的完整功能 构造函数可以使用 this 调用自身 或任
  • FileChannel#force 和缓冲

    我现在想澄清一下 并在 FileOutputStream 和 FileChannel 之间画出一些相似之处 所以首先 似乎使用标准 Java io 写入文件的最有效方法是使用用 BufferedOutputStream 包装的 FileOu
  • WPF MVVM取消窗口关闭

    我是 WPF 和 MVVM 新手 我想最小化窗口而不是关闭它 换句话说 我想取消Closing窗口事件并最小化该窗口 我应该如何以 MVVM 方式进行操作 如果相关的话 最后我会设置ShowInTaskbar to false并使用WinF
  • 刷新有嵌套路由的页面时出现“404 not found”,因为Vite没有将所有路由重定向到index.html

    我可以使用 React 路由器useNavigate钩子去一个嵌套的路线 比如localhost 3000 nested route 但是一旦重新加载 我就会收到 404 未找到错误 因为它正在尝试查找localhost 3000 nest
  • 键绑定的 Atom 数据语法

    有人可以完整解释 Atom 的数据语法属性 用于键绑定选择器 的语法吗 例如 有什么区别 data grammar source example and data grammar source example 另外 如何指定多种语法 例如
  • 删除重复项,但忽略空值

    所以我知道你可以使用类似的方法来删除重复的行 the data drop duplicates subset the key 然而 如果the key对于某些值来说为 null 如下所示 the key C D 1 NaN 2 NaN 3
  • Swift 包管理器找不到模块

    我正在尝试熟悉 Swift 包管理器 这就是我所做的 swift package init type executable 在 Package swift 中添加了依赖项 swift build 一切都很好 但在我尝试之后import De
  • 禁用反应形式的输入字段

    我已经尝试遵循此处其他答案的示例 但没有成功 我创建了一个反应式表单 即动态 并且我想在任何给定时间禁用某些字段 我的表单代码 this form this fb group name Validators required options
  • SQLite 的 System.AccessViolationException

    现在 我正在处理这个错误 An unhandled exception of type System AccessViolationException occurred in Unknown Module Additional inform
  • 为什么 scala 需要存在类型来限制泛型界限?

    具有以下类层次结构 trait Provider A def get Seq A abstract class ProviderImpl A extends Provider A final override def get Seq A S
  • 在JavaFX中实现只读样式?

    我想要具有不同状态的实体 控件或属性 这些状态可以通过 CSS 着色 例如 考虑 TextField 它可以包含两种类型的值 正常值和错误值 一旦包含错误值 应显示 红色 但实际的颜色应该可以由 CSS 定义 这可以实施吗 我发现了很多St
  • 使用 FileHandler 进行 Django 日志记录不起作用

    我正在 django 项目中使用下面的日志记录设置 也使用sentry raven 哨兵 乌鸦位工作正常 但文件日志记录却不行 创建一个空日志文件 但每当我使用logging info foo 日志文件中没有任何内容 即它保持为空 有什么建
  • Imgur API BUG 图片上传请求过多

    我正在通过 Imgur API 上传图像 https apidocs imgur com https apidocs imgur com 但我收到 请求太多 错误 429 即使前一个请求返回 X Ratelimit Userremainin
  • 使用 jqGrid 将列显示为行

    有没有办法将列显示为行 因此 行数代表我们尝试显示的对象的属性数量 列数代表返回的记录数 在我的情况下 它始终是一条记录 Picture 我尝试寻找现有的答案 但还没有找到 我也尝试过使用格式化程序 但我想它们仅用于格式化指定的单元格 而不
  • UIImageView IOS中间的透明圆圈

    I need to make UIImageView transparent at the Middle Position Round Circle See attached image I should be able to see th
  • Swing 方法类似于 HTML5 的 canvas.putImageData(arrayOfPixels, 0,0)

    我有一些 Javascript 代码作用于如下定义的像素数组 screen width 160 height 144 data new Array 160 144 4 canvas putImageData GPU scrn 0 0 其中
  • Adobe CQ/AEM - 触发编辑后处理程序

    当我在组件编辑器对话框中选择 确定 时 组件会重新绘制自身 假设我已经设置了 cq editConfig xml
  • C# 组合框 GotFocus

    我有一个 C ComboBox使用 WPF 我有在以下情况下执行的代码ComboBox s GotFocus被激活 问题是GotFocus每次从以下位置进行选择时都会执行事件ComboBox 例如 GotFocus当您第一次点击时执行Com
  • 如何使用 MigLayout 在面板上绘制分隔符

    这是一个 MigLayout 新手问题 我想知道如何从标签末端跨面板宽度绘制分隔符 这是我的示例代码 package com ndh swingjunk import java awt import javax swing import n