java - 动态改变JDialog的宽度

标签 java swing jlabel jdialog

我创建了一个包含 JLabel 的 JDialog。由于根据用户输入而改变的文本长度可能包含大量字符,因此需要根据JDialog的长度大小动态地改变JDialog的长度。我已经尝试过 pack() 方法,但事实并非如此。谁能给我一些建议吗?提前致谢!

最佳答案

  1. getPreferredSize for JLabel - 基本上你必须从 JLabel 获取 textLength (以像素为单位),那里有 3 种正确的方法,但我喜欢:

    SwingUtilities.computeStringWidth(FontMetrics fm, String str)
    
  2. 现在您可以正确为JLabelsetPreferredSize(默认情况下,是否需要将+5 - +10添加到Integer 返回 SwingUtilities.computeStringWidth)

  3. 在顶级容器(JDialog)上调用pack();

关于java - 动态改变JDialog的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6845382/

相关文章:

java - 计算字符串数组中每个单词最后一次出现后的单词数

java - spring 将值从属性文件传递到注释

java - 在 PaintedImage Java 上绘制字符串

java - 在 JLabel 中画线并添加为 JFrame 中的 JPanel 不起作用

java - 由于鼠标事件无效,如何将第一个 JLabel 背景颜色分配给下一个 JLabel?

java - 使用 java swing Timer 处理文本并将其附加到文本区域

java - 使用 Espresso stub 在测试 Activity 的 onCreate 期间启动的 Intents

java - 在 JLabel 中用 int 换行的问题

java - 从其他类调用java swing控件和容器

java - JLabel setText() 方法不起作用