JLabel中心内容分为3行

时间:2015-04-27 13:23:18

标签: java html css jpanel

我试图将conent置于JLabel中心,并在三个不同的行中添加前三个字符串。我尝试用CSS做,但JLabel没有像我想的那样格式化它。它目前的样子:
enter image description here


但我希望它看起来像这样:

================================
|| 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实现我想要的东西?

1 个答案:

答案 0 :(得分:0)

您可以使用HTML / CSS在Java中设置标签字体样式,这真是太神奇了。可能有多种方法可以解决这个问题,但是如果你想坚持使用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>");

Image of JLabel with formatting from CSS/HTML

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