代码之家  ›  专栏  ›  技术社区  ›  Relequestual

jscrollpane不显示borderlayout约束是否为中心?

  •  1
  • Relequestual  · 技术社区  · 16 年前

    开发一款游戏已经有一段时间了,目前正在重新运行图形用户界面,或者至少正在尝试这样做。有一个巨大的问题,无法调整框架的大小(没有问题),因为我不太了解布局管理器。几个项目之后,是时候回来做更多的游戏了,我遇到了一个问题…

    主框架的基本布局是,主窗格,包含一个游戏滚动窗格和一个控制面板。滚动窗格是滚动窗格,控制面板是普通面板。滚动窗格包含主游戏面板。

    因为我希望滚动窗格占据大部分屏幕,控制面板占据一个较小的较低区域,与许多类似SIM卡的游戏差不多,所以选择了主窗格的边框布局。我添加了滚动窗格并设置了约束中心,添加了控制面板并向南设置了常量。这并没有显示滚动窗格,所以我尝试了不同的约束,似乎只有当我将滚动窗格约束设置为“北”时,它才会显示出来。

    为了证明这一点,我创建了一个快速视频… http://screenjel.ly/q5RjczwZjH8

    正如你所看到的,当我把“北”的值改为“中心”并重新运行时,它就好像不在那里一样!

    任何能看到第二个问题的人都可以获得加分,这个问题解决后,我可以开始另一个问题!

    感谢您抽出时间来阅读。

    提前感谢您的任何想法或想法:)

    雷尔

    2 回复  |  直到 16 年前
        1
  •  1
  •   Carl Smotricz    16 年前

    我看不到录像带。它已经缓冲很久了。

    我的猜测是滚动窗格实际上占据了中间位置;只是你的游戏面板没有显示出来。

    您的游戏面板需要返回 getPreferredSize() .

    更新

    你可能想做的另一件事是让你的游戏面板实现 Scrollable 接口。然后您可以覆盖 getScrollableTracksViewportWidth ...height 归来 true 所以你的面板将被强制到滚动窗格的尺寸。

        2
  •  3
  •   PSpeed    16 年前

    如果你先发布了一些代码,那么你可能会得到一个非常快速的答案。幸运的是,您在评论中发布了另一个响应的链接。

    setContentPane()的东西很奇怪,特别是在对它做了一些事情之后,它会被清除掉。不过,这不是你的问题。

    问题是,您正在将levelmaker和personmover直接添加到主窗格中,而不受任何约束。然后这些将吹走你为中心设置的任何东西…在这种情况下,以前设置的游戏滚动窗格。

    这就是为什么你看到它在北方而不是在中心。