-1

我又来了……与秋千搏斗!!!所以我正在创建一个在线测试,它将显示在一个小程序中。测试题的数量不固定,所以我需要根据测试来提问。为了显示问题,我创建了一个问题 jpanel,然后我将其添加到容器面板中,该面板显示在小程序中。对于容器面板,我使用的是 boxlayout,它允许我将问题一个接一个地堆叠起来。

我的问题是,在容器面板中添加超过 5 个问题后,问题开始重叠。那么有人可以指导我吗?

首先,如何避免重叠?其次,jpanel 是否有固定的最大尺寸?或者有没有办法让它足够大以容纳面板容器中的所有测试问题?我考虑过将面板嵌入到 jscrollpane 中,或者我不知道一旦容器面板嵌入到小程序中,它是否会在我向下滚动浏览器时向下滚动...谢谢大家的帮助

这是没有太多问题时的样子...

在此处输入图像描述

这是代码...

 public class Test extends JPanel {

    public Test() {
        setLayout(null);            
        JScrollPane scrollPane = new JScrollPane();
        scrollPane.setBounds(0, 5, 712, 1200);
        add(scrollPane);

        JPanel panel = new JPanel();
        scrollPane.setViewportView(panel);
        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));

        MultipleChoice q1 = new MultipleChoice();
        panel.add(q1);
        MultipleChoice q2 = new MultipleChoice();
        panel.add(q2);
        MultipleChoice q3 = new MultipleChoice();
        panel.add(q3);
        MultipleChoice q4 = new MultipleChoice();
        panel.add(q4);
        MultipleChoice q5 = new MultipleChoice();
        panel.add(q5);    
    }    
}
4

1 回答 1

2

我在猜测,我所能做的就是在没有sscce的情况下进行猜测,但是如果您的 MultipleChoice JPanel 使用空布局,那么它将无法为您的布局管理器提供一个体面的 preferredSize 以允许重叠组件。如果是这样,那么解决方案就是几乎永远不要使用空布局。

你在评论中说:

我知道伙计...但是当我对挥杆不太了解时,我怎么能更具体呢?我正在使用 Windowbuilder,这是将容器布局设置为绝对布局时给出的布局。

  • “伙伴”?
  • 关于,“当我对 Swing 了解不多时”:然后了解 Swing。转到布局管理器教程并阅读布局管理器。
  • 关于,“我正在使用 Windowbuilder,这是将容器布局设置为绝对布局时给出的布局。”:正如您自己承认的那样,您的问题的一部分是您尚未完全了解 Swing,尤其是其布局的使用经理们,这个问题的一个原因是你正在使用一种工具来缓冲你必须理解这一点。我敦促您不要使用 WindowBuilder。再次阅读布局管理器并学习如何使用它们。你不会后悔你做了这件事。
于 2013-07-13T02:24:44.003 回答