gpt4 book ai didi

java - JLabels 放置在彼此之上

转载 作者:行者123 更新时间:2023-11-29 06:40:48 25 4
gpt4 key购买 nike

你好新手 java 程序员,这可能是一个非常愚蠢的问题,但我在向我的 View 中添加多个 JLabel 时遇到了问题。他们似乎在互相掩护。我一直在阅读关于这三个布局管理器的资料,但我似乎找不到关于它们的简单教程。

    //Size and positioning
setSize(500,400);
setLocationRelativeTo(null);

//Set Frame Background color

//Set Labels
JLabel labelTitle = new JLabel("<html><center>My CD/DVD Collection</center></html>",null,JLabel.CENTER);
labelTitle.setFont(new Font("Arial",0 , 28));
labelTitle.setVerticalAlignment(JLabel.TOP);
add(labelTitle);
labelTitle.setBorder(BorderFactory.createEmptyBorder( 50 /*top*/, 0, 0, 0 ));

JLabel labelContent = new JLabel("<html><center> created by Daniel Del Core <br> Java</center></html>",null,JLabel.CENTER);

add(labelContent);

感谢您的帮助:)

最佳答案

您的代码将元素直接添加到 JFrameJDialog,默认情况下它们有一个 BorderLayout,因此您的所有标签最终都在 BorderLayout.CENTER 中。这就是它们重叠的原因。

这里是一个使用 FlowLayout 代码的例子。请注意,我正在使用一个面板来添加标签,并且该面板已添加到您窗口的内容 Pane 中。

JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
//Set Labels
JLabel labelTitle = new JLabel("<html><center>My CD/DVD Collection</center></html>",null,JLabel.CENTER);
labelTitle.setFont(new Font("Arial",0 , 28));
labelTitle.setVerticalAlignment(JLabel.TOP);
panel.add(labelTitle);
labelTitle.setBorder(BorderFactory.createEmptyBorder( 50 /*top*/, 0, 0, 0 ));

JLabel labelContent = new JLabel("<html><center> created by Daniel Del Core <br> for <br> Java Programming and Applications</center></html>",null,JLabel.CENTER);
panel.add(labelContent);
getContentPane().add(panel);

关于java - JLabels 放置在彼此之上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12530312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com