首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >BorderLayout()在Java中的问题

BorderLayout()在Java中的问题
EN

Stack Overflow用户
提问于 2015-11-11 20:28:43
回答 3查看 962关注 0票数 0

我尝试过许多不同的方法,但我将解释两种方法以及发生了什么(没有错误消息或任何东西,只是没有显示出它们应该出现的样子,或者根本没有出现):

首先,我创建了一个名为JPanel的布局,并将其设置为BorderLayout。下面是我如何使它看起来的一个片段:

代码语言:javascript
运行
复制
JPanel layout = new JPanel();
layout.setLayout(new BorderLayout());

colorChoice = new JLabel("Choose your color: ");
layout.add(colorChoice, BorderLayout.NORTH);

colorBox = new JComboBox(fireworkColors);
colorBox.addActionListener(this);
layout.add(colorBox, BorderLayout.NORTH);

在这种情况下,它们根本不出现。它只会继续我添加的其他任何东西。

然后我尝试了setLayout(新的BorderLayout());下面是该代码的一个片段:

代码语言:javascript
运行
复制
    setLayout(new BorderLayout());
    colorChoice = new JLabel("Choose your color: ");
    add(colorChoice, BorderLayout.NORTH);

    colorBox = new JComboBox(fireworkColors);
    colorBox.addActionListener(this);
    add(colorBox, BorderLayout.NORTH); 

但是,在这个场景中,宽度占用了整个框架的宽度,而textfield (没有显示在代码片段中)基本上占用了其他所有内容。

下面是我尝试过的: setPreferredSize() & setSize()

还有什么是我遗漏的吗?谢谢。

我还应该指出,这是一个单独的类,在这个类中没有main。我这么说只是因为我扩展了JPanel而不是JFrame。我见过一些人扩展JFrame并使用JFrame,但我还没有尝试过。

EN

Stack Overflow用户

发布于 2015-11-11 21:06:20

下面是一个具有JPanel的BorderLayout示例,该示例将带有按钮和标签的JPanel添加到"North“

代码语言:javascript
运行
复制
public class Frames extends JFrame
{
    public Frames()
    {
        JPanel homePanel = new JPanel(new BorderLayout());
        JPanel northContainerPanel = new JPanel(new FlowLayout());

        JButton yourBtn = new JButton("I Do Nothing");
        JLabel yourLabel = new JLabel("I Say Stuff");

        homePanel.add(northContainerPanel, BorderLayout.NORTH);

        northContainerPanel.add(yourBtn);
        northContainerPanel.add(yourLabel);

        add(homePanel);
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        setLocationRelativeTo(null);
        setExtendedState(JFrame.MAXIMIZED_BOTH);
        setTitle("Cool Stuff");
        pack();
        setVisible(true);
    }

    public static void main(String[] args)
    {
        SwingUtilities.invokeLater(Frames::new);
    }
}
票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33659247

复制
相关文章

相似问题

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