【问题标题】:Align text in JLabel to the right将 JLabel 中的文本右对齐
【发布时间】:2012-09-17 08:33:47
【问题描述】:

我有一个 JPanel,其中一些 JLabel 添加了 JPanel 的 add() 方法。我想将 JLabel 向右对齐,如下图所示,但我不知道该怎么做。任何想法?谢谢!

【问题讨论】:

  • 你想让标签的文本水平对齐吗?

标签: java jpanel jlabel text-alignment


【解决方案1】:

这可以通过两种方式完成。

JLabel 水平对齐

您可以使用JLabelconstructor

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-15
        • 1970-01-01
        • 1970-01-01
        • 2011-11-25
        • 2012-01-29
        • 2011-02-25
        • 2019-04-20
        • 1970-01-01
        相关资源
        最近更新 更多