首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >添加到JLabel时,无法在JPanel中左对齐BorderLayout

添加到JLabel时,无法在JPanel中左对齐BorderLayout
EN

Stack Overflow用户
提问于 2020-06-13 08:14:58
回答 1查看 205关注 0票数 0

这似乎是一件简单的事情,但我不能让它工作。

我有一台BorderLayout。我想用最上面的部分作为标题栏。我想添加一个带有标签、按钮和其他组件的JPanel。但是,边框布局的PAGE_START部分不会左对齐面板。这就是我尝试设置对齐的地方的注释。

我注意到,当我不向边框布局添加面板,而只是直接写入JLabel时,默认情况下它会左对齐。

不过,这不是我想要的,因为我计划在BorderLayout.PAGE_START标题区域水平放置一个BoxLayout.X_AXIS。这似乎是一件合理的事情?

静态方法的Container窗格参数只是主JFrame上的单个面板。

代码语言:javascript
运行
复制
public static void addComponentsToPane(Container pane) 
    {
        JLabel jlabel = new JLabel("I want to left align this inside a JPanel");
        // Doesn't work: jlabel.setAlignmentX(Component.LEFT_ALIGNMENT);
        JPanel jpanel = new JPanel();
        //Doesn't work: jlabel.setAlignmentX(Component.LEFT_ALIGNMENT);
        jpanel.add(jlabel);
        pane.add(jpanel, BorderLayout.PAGE_START);

        // Other parts of the BoxLayout (works fine)
        JButton button = new JButton("Button 2 (CENTER)");
        button.setPreferredSize(new Dimension(200, 100));
        pane.add(button, BorderLayout.CENTER);

        button = new JButton("Button 3 (LINE_START)");
        pane.add(button, BorderLayout.LINE_START);

        button = new JButton("Long-Named Button 4 (PAGE_END)");
        pane.add(button, BorderLayout.PAGE_END);

        button = new JButton("5 (LINE_END)");
        pane.add(button, BorderLayout.LINE_END);
    }

即使我告诉面板左对齐标签,它也不会显示为左对齐。

有人知道我做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2020-06-13 08:17:45

默认情况下,JPanel使用“居中”对齐的FlowLayout

如果您希望组件“左”对齐,则需要将面板上的布局设置为使用“左”对齐的FlowLayout

阅读FlowLayout应用程序接口,了解用于设置对齐方式的正确构造函数。

或者,您也可以阅读How to Use FlowLayut上的Swing教程,其中提供了用于指定对齐方式的构造函数和有效值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62354113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档