JLabel 中心内容分 3 行

Posted

技术标签:

【中文标题】JLabel 中心内容分 3 行【英文标题】:JLabel center content in 3 rows 【发布时间】:2015-07-05 23:37:50 【问题描述】:

我试图将 JLabel 中的内容居中,并将前三个字符串添加到三个不同的行中。我试图用 CSS 来做,但 JLabel 并没有像我想要的那样格式化它。它目前的样子: 但我希望它看起来像这样:

================================== || Eleking02 vs. Nils || || || . 7 - 3 . || ||. Gewonnen! .

pane.setText("<html><div style=\"color: green; text-align: left;\">" + this.getGewinner()
    + "</div><div style=\"text-align: center; margin-top: -17px;\">"
    + "Vs. </div><div style=\"margin-top: -20px; text-align: right; color: red;\">" + this.getVerlierer() 
    + "</div><br/>" + "<font>" + this.getSiegerPunkte() + " - " + this.getVerliererPunkte() + "</font><br/>"
    + "<font>Gewonnen!</font></html>");

也许我可以通过 gridLayout 实现我想要的?

【问题讨论】:

当然有很多方法可以实现这一点,但我建议您使用 GridBagLayout 和多个 JLabel 来满足您的目的 你可以试试code.google.com/p/flying-saucer 并在那里传递HTML 我会推荐使用 code.google.com/p/flying-saucer 我用它做了一些很棒的体验。 你为什么要问网格布局?你可以自己尝试一下 【参考方案1】:

在 Java 中可以使用 HTML/CSS 来设置标签字体的样式真是太神奇了。可能有多种方法可以解决此问题,但如果您想坚持使用 HTML/CSS,以下是一种似乎可行的方法:

pane.setText("<html>"
                + "<div style=\"text-align: center;\">"
                    + "<span style=\"color: green; text-align: left;\">" + "Eleking02 " + "</span>"
                    + "<span style=\"text-align: center; margin-top: -17px;\">" + "Vs. </span> "
                    + "<span style=\"margin-top: -20px; text-align: right; color: red;\">" + " Nils" + "</span>"
                + "</div>"
                + "<br/>"                 
                + "<div style=\"text-align: center;\">" 
                    + "<font>" + "7" + " - " + "3" + "</font>"
                + "</div>"
                + "<br/>"
                + "<div style=\"text-align: center;\">" 
                    + "<font>Gewonnen!</font></html>" 
                + "</div>"
                + "</html>");

HTML 中的 Div 元素是块元素,这意味着它们会在每个 Div 之后自动创建一个新行。你有多个 Div,这会阻止你想要的文本都在一行上。 span 元素做同样的事情,只是它不在元素之后创建新行。为了使文本居中,我只是将我想要居中的内容放在一个 Div 中并应用 text-align: center。这似乎可以解决问题。

【讨论】:

以上是关于JLabel 中心内容分 3 行的主要内容,如果未能解决你的问题,请参考以下文章

为啥这个 JLabel 不在这个 Java 应用程序的中心?

怎么设置JLabel内容对齐方式

将 jLabel 内容导出/保存到新文件夹

在 JLabel 中打印句子

垂直轴中间的 Java JLabel 文本

急!!!!java 如何使jlabel单元格中数据不能被修改