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

时间:2015-03-30 11:52:42

标签: java swing jlabel

我试图创建一个JPanel,其中文本显示在两个JLabel上,如电影或书名。

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

编辑:这应该在全屏模式下保持为真。

实施例

               JLabel1
          Jlabel2withlongertext

1 个答案:

答案 0 :(得分:2)

好的,添加一个答案,以便其他人不要在这里浪费时间:

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

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使标签的大小相同,因此标签内的文本居中也使它们相对于彼此居中。