MigLayout 对齐中心不会使 JLabel 组件居中

2023-12-28

我在用米格布局 http://www.miglayout.com/我发现它很灵活等,但我在用它居中放置东西时遇到问题。我尝试使用gapleft 50%但似乎百分比数字需要根据不同的帧大小进行更改,因为它也取决于组件的大小。所以如果组件使用居中gapleft 25%,如果我调整框架的宽度,它将位于不同的位置。

我尝试过只使用align center它根本就没有什么。

我也尝试过new CC().alignX("center").spanX()和同样的事情:

img
(source: gyazo.com http://gyazo.com/8b562b6dd319d0af1d85cba930af0328.png)

它坚持向左,但是当我使用gapleft时它确实有效,为什么?

    super.setLayout(new MigLayout());
    this.loginPane = new LoginPanel();

    BufferedImage logo = ImageIO.read(new File("assets/logo.png"));
    JLabel logoLabel = new JLabel(new ImageIcon(logo));

    super.add(logoLabel, new CC().alignX("center").spanX());

它坚持向左,但是当我使用gapleft时它确实有效,为什么?

基于这一行:

super.setLayout(new MigLayout()); // why super? Did you override setLayout() method?

默认情况下米格布局 http://www.miglayout.com/rows 不会填充所有可用宽度,而只会填充显示最长行所需的宽度(基于组件宽度)。话虽如此,你的JLabel适合徽标图像宽度,仅此而已,看起来就像粘在左侧。您必须告诉布局管理器,在实例化它时它必须填充所有可用宽度:

super.setLayout(new MigLayout("fillx"));

Or

LC layoutConstraints = new LC();
layoutConstraints.setFillX(true);
super.setLayout(new MigLayout(layoutConstraints);

然后,您的组件约束将按预期工作。


Picture

基于此代码片段:

MigLayout layout = new MigLayout("fillx, debug");
JPanel content = new JPanel(layout);

JLabel label = new JLabel("Warehouse");
label.setFont(label.getFont().deriveFont(Font.BOLD | Font.ITALIC, 18));

CC componentConstraints = new CC();
componentConstraints.alignX("center").spanX();
content.add(label, componentConstraints);

Note:您可以通过执行以下操作来启用调试功能:

super.setLayout(new MigLayout("fillx, debug"));

Or

LC layoutConstraints = new LC();
layoutConstraints.setFillX(true);
layoutConstraints.setDebugMillis(500);
super.setLayout(new MigLayout(layoutConstraints);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MigLayout 对齐中心不会使 JLabel 组件居中 的相关文章

随机推荐

  • 从绑定的 ListBox 中获取所选项目字符串

    我在从列表框中的绑定文本块获取字符串时遇到问题 当我使用下面的代码时 我可以绑定列表框并且列表框显示项目 但是当单击列表中的项目时我不这样做如果没有得到正确的字符串 我会打印一个消息框 其中包含对象名称的消息 例如 我的应用程序项目 相反出
  • 如何在 C# 中获取向量类型?

    我想在我正在编写的 C 应用程序中使用向量 特别是 Vector3 对于我来说 无需编写自己的向量类型 最好的方法是什么 我在 POC 中使用了一个我发现的代码项目 http www codeproject com KB recipes V
  • 如何在 DO 块中执行选择查询?

    我想将以下 SQL 代码从 MS SQL Server 移植到 PostgreSQL DECLARE iStartYear integer DECLARE iStartMonth integer DECLARE iEndYear integ
  • Material-ui 从 React-router 添加 Link 组件

    我正在努力添加我的 Material ui AppBar 的组件 这是我的导航类 class Navigation extends Component constructor props super props render var sty
  • JavaScript 检查图像是否存在

    我正在尝试显示谷歌地图或图像 所以 我想要的是默认情况下我想显示图像 如果图像不存在 则显示谷歌地图 为此 默认情况下我禁用谷歌地图 map canvas display none 然后 我需要类似布尔条件的东西来检查图像的存在 然后返回
  • 如何在 Python 中的泛型类型上使用 isinstance

    我试图检查参数是否是类声明中指定的泛型类型的实例 然而Python似乎不允许这样做 T TypeVar T class MyTypeChecker Generic T def is right type self x Any return
  • 如何通过单击按钮将其打印在一张纸上[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找使用按钮打印页面的解决方案OnClick event 让我举一个例子 带按钮OnClick事件时 代码将随机地将某些图像彼此相邻
  • 在 ListView WPF 中设置项目焦点

    有什么方法可以从 WPF 中的 WinForms 实现此功能吗 ListView FocusedItem ListView Items itemToFocusIndex 我正在尝试手动设置focus 不是选择 WPF ListView 中的
  • C# 检查MySQL数据库是否存在

    我正在使用顶级语句用 C 编写一个简单的控制台应用程序 我想在开始时检查是否存在数据库 这是我的代码 using MySql Data MySqlClient using MySqlConnection connection new MyS
  • 在主键上创建索引并建立索引有什么好处吗?

    我检查了这个帖子 MySQL中主键 唯一键 索引有什么区别 https stackoverflow com questions 3844899 whats the difference between primary key unique
  • 加入现有 NLB 集群

    我一直在尝试编写一个 powershell 程序来检查集群是否存在 如果没有 那么它会创建它并将自己添加到其中 如果另一台计算机醒来 它会检查集群是否存在 如果存在 则将自己添加到集群中 我在尝试从集群 IP 地址获取对集群对象的引用时遇到
  • 如何使用 q 建立回调链?

    我在理解如何使用 JavaScript 的 Promise 库 q https github com kriskowal q 时遇到一些问题 var delayOne function setTimeout function return
  • jQuery 的 .clone(true, true) 不会克隆子级上的事件绑定

    我正在使用克隆 true true 来复制选择和一些按钮以克隆和删除 我认为第二个 true 参数应该确保事件处理程序传递到克隆的子按钮 这是标记 div div class clone div div
  • 如何使用 jQuery .keyup() 函数捕获键盘输入

    正在开发一个简单的刽子手游戏 我正在尝试使用以下命令捕获用户输入keyup 但是当我将其记录到控制台时 我意识到有些东西无法正常工作 这是我的代码 document keyup function e userInput e value co
  • 在 GridSearchCV 中使用精度作为评分时如何指定正标签

    model sklearn model selection GridSearchCV estimator est param grid param grid scoring precision verbose 1 n jobs 1 iid
  • 合并多个 cv::Mat?

    基本上我有 3 个这样的垫子 Mat descriptors1 Mat descriptors2 Mat descriptors3 每个描述符的加载方式如下 extractor gt compute object kp descriptor
  • 如何在 Scala 中为具有构造函数参数的 Actor 创建 TestActorRef?

    The Akka 测试文档 http doc akka io docs akka snapshot scala testing html给出以下创建 TestActorRef 的方法 import akka testkit TestActo
  • 在 R 中并行训练多个网络(使用 Keras)

    我想在 R 中训练 n 个不同的神经网络parallel 我怎样才能做到这一点 我对并行化相当陌生 所以我发现这有点困难 这是我的 1 个网络的代码 到目前为止 model lt keras model sequential Define
  • 按列对 Pandas DataFrame 进行排序

    如何按列对 pandas 数据框进行排序 我在这里读到http pandas pydata org sort values http pandas pydata org pandas docs version 0 19 2 generate
  • MigLayout 对齐中心不会使 JLabel 组件居中

    我在用米格布局 http www miglayout com 我发现它很灵活等 但我在用它居中放置东西时遇到问题 我尝试使用gapleft 50 但似乎百分比数字需要根据不同的帧大小进行更改 因为它也取决于组件的大小 所以如果组件使用居中g