开发者社区> 问答> 正文

使JLabel文本垂直居中对齐

如何使JLabel文本与中心垂直和水平对齐?

我必须利用setHorizontalTextPosition和setVerticalTextPosition。通过使用这两个可以实现吗?

我已经尝试过了,但文字仍然停留在顶部。

 import java.awt.FlowLayout;
 import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.SwingConstants;

public class label extends JFrame
{
  private JLabel label;

    public label() //constructor
    {
      super("Simple GUI");
      setLayout(new FlowLayout());

      label=new JLabel("Centered JLabel");
      label.setHorizontalTextPosition(SwingConstants.CENTER);
      label.setVerticalTextPosition(SwingConstants.CENTER);
      add(label);
    }
 }

问题来源:Stack Overflow

展开
收起
montos 2020-03-27 16:05:16 2101 0
1 条回答
写回答
取消 提交回答
  • 您有两个问题:

    1. 安德鲁解决了第一个问题。您使用了错误的方法。
    2. 接下来,您使用的是错误的布局。FlowLayout仅在一行上显示组件,因此组件将始终位于顶部。不要更改布局管理器。JFrame的默认布局管理器是BorderLayout。当您向中添加组件时CENTER(这是您未指定约束时的默认值),该组件的大小将适合整个框架。然后,“对齐”属性将控制文本在分配给标签的大小内的位置。 或另一种选择是使用GridBagLayout。然后,您无需使用组件的对齐选项:
    setLayout( new GridBagLayout() );
    add(label, new GridBagConstraints());
    

    尝试两个选项,因为两者可能在不同情况下都有效。

    阅读有关布局管理器的Swing教程,以更好地了解每个布局管理器如何工作。

    回答来源:Stack Overflow

    2020-03-27 16:06:04
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载