gpt4 book ai didi

java - 如何在 JPanel 内左对齐 JLabel?

转载 作者:行者123 更新时间:2023-11-30 02:49:28 25 4
gpt4 key购买 nike

我正在尝试为登录对话框构建状态栏,但标签未与状态面板的左侧对齐。这是我的代码。

public class LoginDialog extends JDialog {

private static final long serialVersionUID = 1L;

protected JLabel lblTopSpace = null;
protected JPanel loginPanel = null;
protected JPanel statusPanel = null;

public LoginDialog(String title) {

super((Dialog)null);

this.setTitle(title);

Initialize();
}

protected void Initialize() {

lblTopSpace = new JLabel("Login into Bookyard");
lblTopSpace.setForeground(this.getBackground());

loginPanel = new LoginPanel();
statusPanel = new JPanel();

statusPanel.setBorder(new BevelBorder(BevelBorder.LOWERED));
statusPanel.setSize(this.getWidth(), 50);

JLabel lblStatus = new JLabel("Status");
lblStatus.setFont(new Font("Verdana", Font.PLAIN, 12));
lblStatus.setHorizontalAlignment(SwingConstants.LEFT);
statusPanel.add(lblStatus);

this.setLayout(new BorderLayout());
Container container = this.getContentPane();

container.add(lblTopSpace, BorderLayout.NORTH);
container.add(loginPanel, BorderLayout.CENTER);
container.add(statusPanel, BorderLayout.SOUTH);

this.pack();
}
}

这是目前的样子。

enter image description here

我错过了什么?

最佳答案

您的标签位于对话框内容 Pane 内的面板内。因此标签是通过其父面板的布局来管理的。但是您没有为其设置任何特定布局,那么它就是一个 FlowLayout,然后您的标签会以显示文本所需的最小尺寸居中。然后标签在其自己的区域中左对齐,但该标签在面板中居中。

要么更改面板的布局,让标签在其中扩展(添加 BorderLayout 并将标签设置在其北边、中边或南边),要么删除看起来没用的面板(并让标签在内容 Pane 的南部延伸。

statusPanel.setLayout(new BorderLayout());
statusPanel.add(lblStatus,BorderLayout.SOUTH);

container.add(lblStatus,BorderLayout.SOUTH);

关于java - 如何在 JPanel 内左对齐 JLabel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39163624/

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