如何在一个 JPanel 上将多个 JLabel 居中以及如何将标签文本方向设置为居中

How to center multiple JLabels on one JPanel and how to set the labels text orientation to centered

我正在尝试制作一个 JPanel,其中文本显示在两个 JLabel 上,例如电影或书名。

如何设置两个标签居中于一个JPanel(一上一下)? 此外,是否有任何方法可以将 JLabel 中的文本对齐方式设置为居中,就像在为文档、书籍或电影编写标题时一样。 (作者和标题居中headers)

编辑:这在全屏模式下应该保持正确。

示例:

               JLabel1
          Jlabel2withlongertext

好的,补充一个答案,以免其他人在这里浪费时间:

正如 Andrew 所指出的,这可以通过组合 GridLayout 来实现,它可用于创建标签列,并在标签本身中设置文本对齐方式:

JPanel panel = new JPanel();
// Setting rows to 0 means that new rows are added as needed
panel.setLayout(new GridLayout(0, 1));
panel.add(new JLabel("text", SwingConstants.CENTER));
panel.add(new JLabel("longer text", SwingConstants.CENTER));

GridLayout 使两个标签大小相同,因此将标签内的文本居中也会使它们相对于彼此居中。