2015-04-27 31 views
5

Konuyu bir JLabel içine ortalamak ve üç farklı satırda ilk üç dizeyi eklemek çalışıyorum. CSS ile yapmaya çalıştım ama JLabel istediğim gibi biçimlendirmedi. Ne şu anda benziyor:
enter image description here


Ama böyle bir şey bakmak istiyorum:JLabel merkezi içeriği 3 satırda

================== =============
|| 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>"); 

Belki ben GridLayout ile istediğinizi elde edebilirsiniz?

+4

Tabii ki bunu başarmak için bir çok yol var, ancak GridBagLayout ve birden fazla JLabels'i kendi amaçlarınız için kullanmanızı tavsiye ederim. – ControlAltDel

+0

https://code.google.com/p/flying-saucer/ ve geçişini deneyebilirsiniz. HTML orada – StanislavL

+2

Ben code.google.com/p/flying-saucer kullanarak tavsiye ederim Ben onunla büyük bir expierence yaptım. – uniking

cevap

0

Java'da etiket yazı tiplerini stillemek için HTML/CSS kullanabileceğiniz oldukça şaşırtıcıdır. Orada bu sorunu çözmek için birden çok yolu olabilir, ancak HTML/CSS kullanarak ile sopa istiyorsanız, burada çalışmak gibiydi bir yoludur olabilir:

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 unsurlardır blok elementleri her Div'den sonra otomatik olarak yeni bir satır oluşturdukları anlamına gelir. Birden çok Div'unuz vardı ve bu, tek bir satırda olmasını istediğiniz metni engelleyecekti. Açıklık unsuru, elemandan sonra yeni çizgiyi oluşturmadığı sürece aynı şeyi yapar. Metni ortalamak için, sadece bir Div içinde ortalamak istediğim şeyi yerleştirdim ve uygulanmış bir metin hizalaması: merkez. Bu hile yapmak gibi görünüyordu.