java - 如何让 JLabel 准确预测它应该有多宽?

标签 java swing components awt jlabel

我遇到这样一种情况,用户输入一个字符串,我的代码为其创建一个 Jlabel 并尝试将其置于全屏 JFrame/Pane 的中心。我的问题是,为了能够准确地将它居中,我需要知道它的尺寸。

我需要一种方法来确定 JLabel 应该有多长(宽),以便它容纳字符串的长度,仅此而已。我尝试使用组件具有的 preferredSize() 方法,但它看起来很糟糕(我传递了一个空值让我的 UI 确定 preferredSize)。我知道如何计算出有效的高度(fontSize + 10px 的大小通常很好)但我无法获得宽度。

我正在使用绝对定位(没有 LayoutManager)。

谢谢

最佳答案

我相信实际宽度来自 getPreferredSize().getWidth() 如果您没有事先设置它。尝试输出首选大小而不将其设置为空。在使用 MigLayout 居中组件时,我通常使用 pref! 使所有尺寸的组件尽可能小并避免换行,然后将其居中在宽敞的父容器中。

关于java - 如何让 JLabel 准确预测它应该有多宽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6266011/

相关文章:

java - PHP 和 Java FileOutputStream 编写的文件

java - 为JAVA/SWING应用程序制作一个主窗口

java - 在桌面应用程序中存储配置设置的最佳实践是什么?

java - 有或没有 javax.swing.text.Document

java - 单击按钮时显示或隐藏部分面板的 Swing 方法?

vue.js - 使用组件区域显示各种内容

java - 如何在 Java 中将 URL(可能包括查询字符串)表示为文件名而不模糊原始 URL?

java - 朱尼特 : Generate exportable reports from Junit tests

javascript - React.js - 未使用默认属性并传递 `null`

java - 在局部变量声明语句中, block 语句内部,声明语句的哪一部分是声明符?