【问题标题】:I want to place a JApplet within a JPanel我想在 JPanel 中放置一个 JApplet
【发布时间】:2012-08-12 13:10:18
【问题描述】:

正如标题所说,我想在 JPanel 中放置一个 JApplet,因为我正在制作一个应该显示生物图的插件。 Applet 本身已经编写好了,我也已经制作了一个 HTML 标签,它也可以在浏览器中使用。 但是,我不知道如何让小程序在 JPanel 中运行

HTML 标签:

<applet name="Spectrum_a" code="org/openscience/nmrshiftdb/spectrumapplet/SpectrumViewNoRenderer.class"
                codebase="/home/rianne/workspace/org.pathvisio.MetaboliteInfo/lib/"
                archive="spectrumapplet-bin-1.1.jar" width="450" height="350">
                    <param name="spectrum" value="197.74d;0.0;1|143.55;0.0;0|27.36;0.0;2t|">
                    <param name="realisticLines" value="true">
                    <param name="showCoupling" value="true">
                    <param name="hideNavigation" value="false">
                    <param name="autoIntensity" value="false">
                    <param name="solvent" value="CDCL3">
            </applet>

希望有人可以帮助我:)

【问题讨论】:

  • Java 的HTMLEditorKit 不支持&lt;applet&gt; 标签。
  • 不起作用,也不应该(Applet 是在自己的 JVM 中运行的应用程序,而不是可重用的 UI 组件)。如果您编写了小程序,那么只需检索小程序的内容窗格并将其放入 JPanel 就应该很容易了。您不能(或将永远能够)从 JEditorPane 运行小程序。
  • @sarcan,你对“他们自己的 JVM”部分是错误的。根据我的经验,同一个浏览器实例中的多个小程序使用同一个 JVM 实例运行。不确定是否总是如此,但我确定它确实会发生。所以我认为规范中没有任何东西可以保证一个小程序的独占 JVM。
  • 你是对的,我应该说'JVM自己的隔离区域'。但是,考虑到 OP 的问题,与您添加到面板的组件相比,我们可以将小程序视为一个独立的、自主的进程。
  • @sarcan “你不能(或者永远不能)从 JEditorPane 运行小程序。” 也许不是“开箱即用”JEditorPane,但可以更改 JEP(或者更确切地说是编辑器工具包),以便加载小程序。 Appleteer 就是一个例子。

标签: java swing jpanel japplet html


【解决方案1】:

要将小程序嵌入到 Java 应用程序中,我建议不要使用 HTML。相反,将applet 视为简单的component,并尝试像浏览器插件一样对待applet。特别是,确保set a stub 并适当地调用initstart 方法。就是stub哪个provides parameters到applet,所以通过适当地实现getParameter方法,你可以传递你想要的任何参数。

您可能必须为插件的 jar 创建一个单独的 class loader,并通过该类加载器实例化插件类。如果您的环境不允许您的插件创建新的类加载器,那么您应该将 applet jar 列为插件的依赖项,以便其类在您的插件使用的同一类路径中可用。即使允许自定义类加载器,这样做也可能更容易,因此请选择您喜欢的任何方法。

【讨论】:

  • 这样,但我怎样才能实现我需要的参数呢?
  • @RianneFijten,在我的答案中添加了有关参数的详细信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-17
  • 1970-01-01
  • 2013-06-22
相关资源
最近更新 更多