java - BorderLayout() 似乎不起作用。 JButtons 不会去南方

标签 java swing user-interface layout-manager border-layout

正如标题所示,由于某种原因,带有 JButtons 的面板保持在北方。这是我认为相关的代码。

    f = new JFrame();
    f.setTitle("Book Quiz");
    f.setSize(800, 400);
    f.setLocation(400, 250);
    f.setResizable(false);
    f.setDefaultCloseOperation(EXIT_ON_CLOSE);

    card = new JPanel();
    cardLayout = new CardLayout();
    card.setLayout(cardLayout);

    takeQuizCard = new JPanel();
    takeQuizCard.setLayout(new BorderLayout());

    quizButtons = new JPanel();
    submit = new JButton("Submit Answer");
    next = new JButton("Next");
    quizDone = new JButton("Done");
    quizDone.addActionListener(this);
    quizQuit = new JButton("Quit");
    quizQuit.addActionListener(this);
    quizButtons.setLayout(new FlowLayout());
    quizButtons.add(submit);
    quizButtons.add(next);
    quizButtons.add(quizDone);
    quizButtons.add(quizQuit);
    takeQuizCard.add(quizButtons, BorderLayout.SOUTH);
    quizInfo = new JPanel(new GridLayout(0, 1));

    card.add(takeQuizCard, TAKE_QUIZ_CARD);

    takeQuizCard.add(quizButtons);

    f.add(card);

WEST 部分还有 4 个单选按钮和两个标签。我把它省略了,这样就不会分散任何人的注意力,但如果相关的话,我会添加它。有人有主意吗?我的程序中有另一张“卡”可以正常工作,并且所有内容在代码方面似乎都是相同的。

最佳答案

您正在倒数第二行重新添加quizButtons。它会覆盖您之前放置的 SOUTH

删除:

takeQuizCard.add(quizButtons);

并保留:

takeQuizCard.add(quizButtons, BorderLayout.SOUTH);

关于java - BorderLayout() 似乎不起作用。 JButtons 不会去南方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27252405/

相关文章:

java - 将文件从 R 传递到 Java

java - 在spring中解析JSON?

java - 如何使 JFrame 透明?

java - 从另一个项目调用 JDialog?

java - JScrollPane 缩放 View ,里面有组件

java - 在 Liberty Server 上运行 spring-boot 应用程序

java - 使用 DocumentFilter 后将文本附加到 JTextArea

java - 以编程方式禁用菜单项

Java Swing Card Layout 更改显示的面板?

java - 使用 JTextField 创建/编辑对象