我试图将conent置于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实现我想要的东西?
答案 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>");
HTML中的Div元素是块元素,这意味着它们会在每个Div之后自动创建一个新行。你有多个Div,这会阻止你想要的文本全部在一行上。 span元素执行相同的操作,除了它不在元素后面创建新行。为了使文本居中,我只是将我想要居中的内容放在Div中并应用text-align:center。这似乎可以解决问题。