代码之家  ›  专栏  ›  技术社区  ›  Stephane Grenier

如何在JavaSwing的JLabel中设置行间距/高度?

  •  4
  • Stephane Grenier  · 技术社区  · 16 年前

    JLabel someJLabel = new JLabel("<html>first line<br>second line</html>");
    someJLabel.setFont(new Font("Arial", Font.PLAIN, 16));
    

    PS:我也研究过使用段落而不是特征线,但这是一样的。我不知道你是否可以在一个html标签中不使用css就可以做到这一点(你不能在javaswing的JLabel中的html代码中使用css)。

    6 回复  |  直到 16 年前
        1
  •  5
  •   Dave    16 年前

    这应该管用,但不是。 color: green 不过还是管用的。

    content.add(new JLabel("<html><p style=\"line-height: 150%;\">hi<br>world</p></html>"));

    Here's a nice tool 我发现你可以用它来测试你的HTML是否能快速工作。

        2
  •  3
  •   camickr    16 年前

    查看HTMLEditorKit的setStyleSheet(…)方法。我以前从未使用过它,但我相信它提供了一些基本的支持。

    否则,您可以使用JTextPane来控制行间距。我想你应该用:

    StyleConstants.setLineSpacing(...);
    

    然后可以更改前景/背景等,使文本窗格看起来像一个标签。

        3
  •  3
  •   Dmitry    13 年前

    因为Java支持 <p> 边缘

    new JLabel("<html>first line<p style='margin-top:-5'>second line");
    

    另外,现在不需要关闭html标记。

        4
  •  2
  •   David J. Liszewski    16 年前

    隐马尔可夫模型。。如果坚持使用支持的属性,JLabel中的CSS似乎对我有用。尝试 padding (或 margin )以及 font-size :

    someJLabel = new JLabel("<html><body><p style=\"padding:10; font-size:30\">First line</p><p style=\"padding:10; font-size:20\">Second line</p></body></html>");
    
        5
  •  0
  •   badpanda    16 年前

    您可以尝试使用两个标签,并使用LayoutManager设置两个标签之间的距离以及空格。我自己也喜欢GridBoxLayout。

    编辑:GridBagLayout。哎呀!

        6
  •  -2
  •   Madhawa Priyashantha    10 年前

    设置空边框有帮助吗

    label.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
    

    BorderFactory.createEmptyOrder(int-top,int-left,int-bottom,int-right)