【问题标题】:JPanel in JScrollPane not showing [duplicate]JScrollPane 中的 JPanel 未显示 [重复]
【发布时间】:2014-10-22 12:39:55
【问题描述】:

我正忙着为我打算用 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();
    }
}

【问题讨论】:

标签: java swing jpanel jscrollpane


【解决方案1】:

你应该使用

scroller = new JScrollPane(dp);

scroller.setViewportView(dp);

而不是scroller.add(dp)

还有一个更一般的注意事项:如果您在布局方面遇到问题,请在所有相关组件上放置素色线边框,以查看哪些占用空间,哪些不占用空间。

【讨论】:

  • 你是救生员!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多