Ausrichtung von text und icon anders in JLabel
ich versuche zu schaffen, ein JLabel mit text Links ausgerichtet und das Symbol Rechtsbündig, ich habe versucht, diesen code:
_ip = new JLabel(ip);
_ip.setFont(boldFont);
_ip.setBounds(5, 0, 100, 50);
_ip.setIcon(images.ipBan);
_ip.setBorder(BorderFactory.createLineBorder(Color.black, 1));
_ip.setHorizontalTextPosition(SwingConstants.LEFT);
add(_ip);
Und das ist, was ich bekomme:
Das rote Bild zeigt die tatsächliche Ausrichtung von Bildern, die das grauen zeigt und wo ich will, dass mein Bild.
Wenn ich
_ip.setAlignmentX(JLabel.RIGHT_ALIGNMENT);
Passiert nichts, und wenn ich hinzufügen
_ip.setHorizontalAlignment(JLabel.RIGHT);
Symbol ausgerichtet ist, sondern auch text ist Rechtsbündig ausgerichtet, und ich will, dass es Linksbündig
Gibt es einen Weg, es zu tun?
Nicht durch ein paar Räume löst das problem?Ich meine
Nein, das wird geholt-von-db-IPs-Liste, wenn ich wählen, um einige Räume, es heißt, ich sollte wissen, dass sich jede IP, die ich bin laden, aber in der Tat ich weiß nicht, wie Sie geladen werden, von einem db, ich kann also nicht einfach Leerzeichen einfügen
Ich weiß, es ist eine hässliche Weise, aber deine ip-string+ " (SPACE)" wird die Arbeit machen.
Es muss ein Weg (schwierig oder nicht) zu tun, die Leerzeichen sind nur ein workaround, dass ich nicht wollen, zu verwenden, vor allem, weil die schriftart die ich verwende ist nicht monospaced, also wenn ich einige Etiketten in eine JList, jedes Symbol wird ausgerichtet sein auf andere
jLabel.setText("99.222.22.230 (FEW SPACES) ")
Nein, das wird geholt-von-db-IPs-Liste, wenn ich wählen, um einige Räume, es heißt, ich sollte wissen, dass sich jede IP, die ich bin laden, aber in der Tat ich weiß nicht, wie Sie geladen werden, von einem db, ich kann also nicht einfach Leerzeichen einfügen
Ich weiß, es ist eine hässliche Weise, aber deine ip-string+ " (SPACE)" wird die Arbeit machen.
Es muss ein Weg (schwierig oder nicht) zu tun, die Leerzeichen sind nur ein workaround, dass ich nicht wollen, zu verwenden, vor allem, weil die schriftart die ich verwende ist nicht monospaced, also wenn ich einige Etiketten in eine JList, jedes Symbol wird ausgerichtet sein auf andere
InformationsquelleAutor BackSlash | 2013-03-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Alternativ können Sie eine
JPanel
mit einem passenden layout, wie abgebildet hier.Das ist das, was ich suchte, danke!
Sie sind herzlich willkommen! @joeyrohan: Könnte möglich sein, mit
TextLayout
in einem benutzerdefiniertenLabelUI
für Beispiel.+1, dass ein layout-manager an die Arbeit.
Schön gemacht, sowohl die Beispiele!lernen Sie Element des Tages!
InformationsquelleAutor trashgod
bitte DYM???
BEARBEITEN
frame.pack()
Instruktion und einfachframe.setSize(500,300)
ist, wird es nur center das label, das ist nicht, was ich tun willIch glaube nicht, dass er versucht zu zeigen den Rahmen auf das Zentrum, sondern sehen, der Abstand zwischen Symbol und text.
Ich sage nicht, er zeigt den Rahmen auf der center, ich sage, dass diese Lösung einfach zentriert den text und das Symbol auf das JLabel, aber das ist nicht das, was ich brauche, das ist also nicht eine Lösung für mein problem, und auch der Abstand zwischen text und Symbol ist nicht eine Lösung, denn ich weiß nicht, wie viele chars mein text enthalten
Aber wissen Sie immer, max : xxx.xxx.xxx.xxx .Was genau Sie wollen?Kann
Label.setIconTextGap()
hilft?Über das Symbol text-Lücke ist die gleiche wie das verwenden von Leerzeichen, wenn ich also
_ip.setIconTextGap(15)
, dann ein label mit text151.33.58.1
haben die text-und Symbol-Ausrichtung in Ordnung, dass ich will, aber wenn mein text ist1.1.1.1
es wird nicht korrekt ausgerichtet.InformationsquelleAutor mKorbel