2016-07-16 8 views
2

Ich möchte fragen, ob es in einem einzelnen JLabel möglich ist, Textsymboltext zu haben, was ich meine, ist das Symbol in der Mitte meines String-Textes.Java: JLabel mit Text und Icon

Ich konnte Text nach links oder rechts bewegen, aber ich kann nicht herausfinden, wie man das Symbol in der Mitte platziert.

+0

Ein JLabel hat Text und Symbol - Sie können die Beschriftung über dem Text haben, aber nicht zwei Texte und ein Symbol. Sie können dies mit 3 JLabels zusammen im richtigen Layout erreichen – copeg

Antwort

2

Symbol in der Mitte meines String Text

A JLabel hat Text und Symbol zu sein - Sie das Etikett auf der Oberseite des Textes haben, aber nicht zwei Text und ein Symbol. Sie können das gleiche Aussehen mit 3 JLabel zusammen im richtigen Layout erreichen. Um zum Beispiel eine BoxLayout mit:

Box box = Box.createHorizontalBox(); 
box.add(new JLabel("Text 1")); 
JLabel image = new JLabel(); 
image.setIcon(UIManager.getIcon("OptionPane.errorIcon")); 
box.add(image); 
box.add(new JLabel("Text 2")); 

Alternativ, wenn Sie den Text wünschen oben auf dem Bild zu sein, können Sie dies tun, indem Sie die entsprechenden Ausrichtungen Einstellung:

JLabel label = new JLabel(); 
label.setIcon(UIManager.getIcon("OptionPane.errorIcon")); 
label.setText("My Text"); 
label.setHorizontalTextPosition(JLabel.CENTER); 
label.setVerticalTextPosition(JLabel.CENTER); 
0

Ich möchte zu fragen, ob es in einem einzigen JLabel möglich ist, kann Text Symbol Text

A JLabel anzeigen HTML einfach zu haben:

String html = "<html>before <img src=\"file:someFile.jpg\">after</html>"; 
JLabel label = new JLabel(html); 

aber HTML dauert länger zu rendern, so dass Sie die BoxLayout Ansatz betrachten möchten.