JScrollPane中的JPanel没有显示

时间:2014-10-22 12:39:56

标签: java swing jpanel jscrollpane

我正忙着为我打算用Java制作的游戏制作关卡设计师。我有一个设置面板,例如关卡的大小或背景。您还可以选择要放在另一个面板上的图像,即“DesignerPanel”,然后您应该可以单击该面板将其放在特定位置。我将DesignerPanel放在JScrollPane中以滚动更大的级别。

问题是JScrollPane没有出现,也没有出现在其中的面板。我发现了一些关于滚动条没有出现的问题,但在我的情况下没有出现任何问题。好吧,至少,几乎没有。

您可以在右侧和下方看到DesignerPanel的小条纹。但是,没有JScrollPane或面板其余部分的痕迹。调整大小或最小化和最小化屏幕并没有什么不同。我会张贴一张图片,我认为这肯定会有所帮助,但显然我需要声誉来做到这一点,对此感到抱歉。

这是我到目前为止的相关代码。我隐藏了大部分代码,因为它对于此错误并不重要。

package games;

import java.awt.*;
import java.io.*;
import javax.swing.*;

class LevelDesignerScreen extends JFrame
{
    private SettingsPanel sp;
    private DesignerPanel dp;
    private JScrollPane scroller = new JScrollPane();

    LevelDesignerScreen()
    {
        sp = new SettingsPanel(this);
        add(sp, BorderLayout.WEST);
        dp = new DesignerPanel(sp);
        dp.setSize(1000, 1000);
        scroller.setPreferredSize(new Dimension(600, 600));
        scroller.add(dp);
        add(scroller, BorderLayout.CENTER);
    }

    public static void main(String[] args)
    {
        new LevelDesignerScreen();
    }
}

1 个答案:

答案 0 :(得分:3)

你应该使用

scroller = new JScrollPane(dp);

scroller.setViewportView(dp);

而不是scroller.add(dp)

更一般地说:如果你遇到布局方面的问题,可以在所有相关组件上加上彩色线条边框,以查看占用空间的内容以及不占用的内容。