将 JLabel 中的文本右对齐
Posted
技术标签:
【中文标题】将 JLabel 中的文本右对齐【英文标题】:Align text in JLabel to the right 【发布时间】:2012-09-17 08:33:47 【问题描述】:我有一个 JPanel,其中一些 JLabel 添加了 JPanel 的 add()
方法。我想将 JLabel 向右对齐,如下图所示,但我不知道该怎么做。任何想法?谢谢!
【问题讨论】:
你想让标签的文本水平对齐吗? 【参考方案1】:这可以通过两种方式完成。
JLabel 水平对齐
您可以使用JLabel
constructor:
JLabel(String text, int horizontalAlignment)
向右对齐:
JLabel label = new JLabel("Telephone", SwingConstants.RIGHT);
JLabel
也有setHorizontalAlignment
:
label.setHorizontalAlignment(SwingConstants.RIGHT);
这假设组件占据了容器的整个宽度。
使用布局
另一种方法是使用布局将组件实际对齐到右侧,同时确保它们不会占据整个宽度。这是BoxLayout
的示例:
Box box = Box.createVerticalBox();
JLabel label1 = new JLabel("test1, the beginning");
label1.setAlignmentX(Component.RIGHT_ALIGNMENT);
box.add(label1);
JLabel label2 = new JLabel("test2, some more");
label2.setAlignmentX(Component.RIGHT_ALIGNMENT);
box.add(label2);
JLabel label3 = new JLabel("test3");
label3.setAlignmentX(Component.RIGHT_ALIGNMENT);
box.add(label3);
add(box);
【讨论】:
【参考方案2】:JLabel label = new JLabel("fax", SwingConstants.RIGHT);
【讨论】:
【参考方案3】:对我来说, 似乎您的实际意图是将不同的单词放在不同的行上。 但是让我回答你的第一个问题:
JLabel lab=new JLabel("text");
lab.setHorizontalAlignment(SwingConstants.LEFT);
如果你有图片:
JLabel lab=new Jlabel("text");
lab.setIcon(new ImageIcon("path//img.png"));
lab.setHorizontalTextPosition(SwingConstants.LEFT);
但是,我相信你想让标签在 1 行上只有 2 个单词。
在这种情况下试试这个:
String urText="<html>You can<br>use basic HTML<br>in Swing<br> components,"
+"Hope<br> I helped!";
JLabel lac=new JLabel(urText);
lac.setAlignmentX(Component.RIGHT_ALIGNMENT);
【讨论】:
以上是关于将 JLabel 中的文本右对齐的主要内容,如果未能解决你的问题,请参考以下文章