【问题标题】:Removing a JPanel from a JFrame从 JFrame 中删除 JPanel
【发布时间】:2009-05-05 03:39:34
【问题描述】:

我目前正在为使用 JOGL 设计的游戏制作介绍屏幕。我希望介绍是一个 JPanel,有几个按钮可以在开始游戏之前更改选项。

所以,我有 JFrame,我添加了一个 GLCanvas。 GLCanvas 还包含一个 GLEventListener。最后,我添加了 JPanel。

我已经重写了 JPanel paintComponent 方法来设置背景图像。我在面板中有几个按钮。每当您单击“播放”按钮时,它都会调用一个函数:

frame.remove(JPanel); frame.repaint(); 动画师.start();

发生的情况是我的 JPanel 正确消失了,但是当调用 repaint 时,我的框架只是充满了灰色。我知道动画师正在正确启动,因为我的 GLEventListener 中的显示方法被调用。

有谁知道问题出在哪里?

【问题讨论】:

  • 如果在更简单的上下文中调用 GLEventListener.display(),它会绘制一些东西吗?

标签: java swing graphics jogl


【解决方案1】:

你的 LayoutManager 是什么?如果您没有指定一个,那么通过添加 JPanel 来替换 GLCanvas。

我会让你的代码这样做:
frame.remove(JPanel); frame.add(glcanvas); animator.start();
您可能需要输入 frame.revalidate()。我现在不知道这一切是如何运作的。

【讨论】:

    猜你喜欢
    • 2011-01-30
    • 2011-02-23
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    相关资源
    最近更新 更多