当前位置: 首页 > 面试题库 >

如何将一个libgdx应用程序正确放置在swing应用程序中?

巩子实
2023-03-14
问题内容

我正在为我的游戏创建一个关卡编辑器,但在将LwjglCanvas与JFrame一起使用时遇到了问题。我使用JFrame(而不是LwjglFrame)来保持引擎和关卡编辑器尽可能独立。我有两个JAR:WorldEditor.jar和GameEngine.jar。在WorldEditor内部,我有一个名为“测试”的按钮,该按钮假设是将GameEngine.jar(如果尚未加载)加载并将其启动(如果已经加载则重新发送)到应用程序主框架中。实际上,我要做的是将WorldEditor游戏容器(例如JFrame中的JPanel)Gdx.app.postRunnable注入游戏应用程序,并用于将lwjglcanvas添加到注入的游戏容器中:

世界编辑方:

JPanel _gameContainer = new JPanel(); // is inside a JFrame
MyGame game = loadGame(_gameContainer); // load the GameEngine JAR, and retrive the game

GameEngine方面:

// container is the _gamecontainer of above
public void createGame(final Container gameContainer)  
{
    LwjglCanvas canvas = new LwjglCanvas(myapp, myconfig);
    Gdx.app.postRunnable(new Runnable()
    {
       public void run()
       {
           gameContainer.add(canvas.getCanvas());
       }
    });
}

事实是,postRunnable从来没有调用过(由于该应用程序在可见之前就不存在,我错了吗?)我已经尝试了很长时间,但是没有结果…

有人对我可以解决此问题有想法吗?还是至少有另一个(让我们说更容易些)方法来做到这一点?


问题答案:

您必须使用SwingUtilites.invokelater,因为postRunnable会发布到未运行的游戏循环。我会尝试从MyGame获取一个组件并添加它。如果返回组件,则没有dep。到LwjglCanvas。并不是很好,因为现在MyGame界面具有dep。摇摆,但值得一试,看看它是否能解决您的问题。



 类似资料:
  • 问题内容: 我确信你们中有人注意到,如果您有Acrobat Reader(或其他PDF阅读器),并在Firefox中打开一个PDF,您会看到它嵌入在您的标签中。有什么方法可以将应用程序嵌入JFrame中? 问题答案: 这是一个相当棘手的问题。通常,诸如Adobe Reader之类的本机应用程序不提供可以嵌入到swing应用程序中的组件。但是在Windows中,有COM / OLE方法可以将应用程序

  • 问题内容: 我有一个Swing应用程序,我希望将其从意大利面条转换为对Guice使用依赖项注入。使用Guice提供诸如配置和任务队列之类的服务的过程非常好,但是我现在是从应用程序的GUI开始的,不确定如何进行。 该应用程序基本上是,在中带有一堆标签。每个选项卡都是一个单独的子类,该子类列出了各种组件,并且需要服务才能在按下某些按钮时执行操作。 在当前应用程序中,这看起来像这样: 显然,这并不完全遵

  • 问题内容: 我有一个使用JPA持久性的jersey-2 / hk2应用程序。将在这样的约束启动 工厂级的 这可行,但是对于每个请求,我都会在日志中收到有关已注册EntityManager的警告: 我究竟做错了什么?在jersey-2 / hk2应用程序中初始化EntityManager的正确方法是什么? 问题答案: 一种选择是不是创建一个新的(这是在请求范围内),您可以创建为一个单独的工厂,然后就

  • 我有一个使用JPA持久性的jersey-2/hk2应用程序。启动时绑定如下所示

  • 问题内容: 对于这个问题,我实际上并没有太多的摆动或GUI设计方面的经验(大学中的一些WPF应用程序的水平差不多),但是我的任务是在工作中重构摆动旧式应用程序的一部分。 我被要求重构的部分围绕一个弹出窗口,该窗口可以根据特定的值对象以三种不同的格式显示。这3种不同的格式都共享一些基本字段,然后有条件地确定其他字段。负责此GUI元素的类的长度约为5k,我当时认为应该将其分为三个子类,并在基类中共享这

  • 我在jQuery移动应用程序中嵌入了一个谷歌地图。在iPhone上查看地图并单击信息窗口时,我会出现以下行为: 如果单击需要将地图向左平移的信息窗口,则信息窗口的右侧会从屏幕的右侧脱落 所有infoWindows的大小都正确,但地图根本没有平移到正确的位置。我使用以下代码放置地图: 我需要弄清楚,当单击使地图向左平移的标记时,如何使信息窗口正确平移。