我正忙着为我打算用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();
}
}
答案 0 :(得分:3)
你应该使用
scroller = new JScrollPane(dp);
或
scroller.setViewportView(dp);
而不是scroller.add(dp)
。
更一般地说:如果你遇到布局方面的问题,可以在所有相关组件上加上彩色线条边框,以查看占用空间的内容以及不占用的内容。